将表单提交写入文件时,请删除换行符和逗号

时间:2010-04-01 18:09:37

标签: php regex forms

我有一张带有textarea的表单。我将结果记录到服务器上的文本文件中,但我想删除用户放入textarea的任何换行符,以及任何会干扰将逗号分隔的日志文本文件导入Excel或供以后使用的东西。

我认为这与正则表达式有关,但我不是专家,可以使用一些帮助。或者也许有一个简单的PHP函数可以做到这一点?

2 个答案:

答案 0 :(得分:1)

如果您只打算做几个字符,可以使用str_replace

$cleaned_textarea_data = str_replace(
    array(",", "\n"), 
    array("", " "), 
    $textarea_data
);

否则,如果它变得更复杂,您可以使用preg_replace

$cleaned_textarea_data = pregr_replace("`[,\n]`", "", $textarea_data);

答案 1 :(得分:0)

使用 str_replace 替换空格中的几个字符应该可以正常工作;例如:

$str = "This is a \nnewline, and, some, commas\nagain";
$new_str = str_replace(array("\n", "\r", ","), " ", $str);
var_dump($new_str);

会得到你:

string 'This is a  newline  and  some  commas again' (length=43)


您也可以使用 strtr

$new_str = strtr($str, "\n\r,", "   ");


但请注意,如果在CSV文件中正确转义数据(使用fputcsv,也许?),它应该能够包含换行符和逗号而不会出现任何问题 - 至少如果用于阅读它的软件也尊重标准