2013-02-17 61 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