2013-02-17 60 views
0

我得到了一個textarea和一個提交按鈕,一旦我寫東西進入textarea並按下按鈕 - 它將textarea內容寫入一個txt文件,我需要幫助格式化使用爆炸內容。 下面是一個使用到textarea的內容寫入到一個txt文件的代碼IM:寫入,閱讀和爆炸txt文件內容

$tavalues = ($_POST['dname']); //dname is textarea field 
$filename = "imones.txt"; 
$fp = fopen ($filename, "w"); 
if ($fp){ 
    fwrite($fp, $tavalues); 
} 
fclose($fp); 

就像你看到的將其寫入imones.txt文件。現在我想讀取文件內容,格式化它,並將格式化的內容寫入另一個文件。我不能似乎得到如何編寫多個分隔符爆炸.. 下面是一個例子,說明我將數據輸入到文本區域(所有雜亂用逗號和東西):

example.com example.com 
example.com, example.com 
example.com 

這是我多麼希望它得到格式化(基本上,我想刪除「」,‘\ n’,‘\ r’):

example.com 
example.com 
example.com 

..(在沒有任何空格一行的各個環節,注意鏈接不同而不一樣)

回答

1

也許試試這個。它很快,很髒。爲了更好的解決您的問題應該嘗試正則表達式!

$input = "exampleA.com exampleB.com 
exampleC.com, exampleD.com 
exampleE.com"; 
$tmp = explode(" ", $input); 
$str = ""; 
$filename = "imones.txt"; 
$fp = fopen ($filename, "w"); 
if ($fp){ 
    for ($i = 0; $i < count($tmp); $i++) { 
     if ($tmp[$i] != "") { 
      $tmp[$i] = str_replace(",", "", $tmp[$i]); 
      $tmp[$i] = trim($tmp[$i]); 
      $str .= $tmp[$i]."\n"; 
     } 
    } 
fwrite($fp, $str); 
} 
fclose($fp); 
+0

就像上面的方法一樣,它在每個值出於某種原因後也給出了2 x新行 – user1894929 2013-02-17 18:21:52

+0

每個值之後有2個新行?我很抱歉,但我沒有在我的箱子上得到這個。奇怪的! – theOrb 2013-02-17 18:44:35

+1

同樣在這裏。這個例子起作用。 [這是在我的測試](http://vetrastudios.com/text.php)。 – Gor 2013-02-17 18:50:06

0

如何將所有爆炸字符轉換爲一個而不是爆炸?

$expl = ';'; 
$content = file_get_contents('imones.txt'); 
$content = str_replace(',', $expl, $content); 
$content = str_replace('\n', $expl, $content); 
$content = str_replace('\r', $expl, $content); 
$content = str_replace(' ', $expl, $content); 
// ... 

while (strpos($content, "$expl$expl") !== false) { // while $expl is found twice 
    $content = str_replace("$expl$expl", $expl, $content); // remove this 
} 

$parts = explode($expl, $content); 

// than join them 
$formatted = implode("\n", $parts); 
file_put_contents('somefile.txt', $formatted); 
+0

由於某些原因,它用空格而不是換行符來寫每個值,繼承人我的意思是 - 它像這樣寫(example.com example.com example.com),我希望它能像這樣寫(example.com \ n example.com \ n example.com \ n(每個新行的值)) – user1894929 2013-02-17 17:09:28

+0

Linux或Windows? Linux換行符是「\ n」,Windows換行符是「\ r \ n」。可能是這個原因。 – nepda 2013-02-17 17:21:36

+0

似乎是「\ r \ n」添加了一個換行符,但現在值之間有2個空格,像這樣(example.com \ nexample.com) – user1894929 2013-02-17 17:26:10