我有一张带有textarea的表单。我将结果记录到服务器上的文本文件中,但我想删除用户放入textarea的任何换行符,以及任何会干扰将逗号分隔的日志文本文件导入Excel或供以后使用的东西。
我认为这与正则表达式有关,但我不是专家,可以使用一些帮助。或者也许有一个简单的PHP函数可以做到这一点?
答案 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
,也许?),它应该能够包含换行符和逗号而不会出现任何问题 - 至少如果用于阅读它的软件也尊重标准。