【问题标题】:PHP str_replace not working correctlyPHP str_replace 无法正常工作
【发布时间】:2010-09-06 23:34:01
【问题描述】:

我正在使用 str_replace,但它无法正常工作。 我有一个文本区域,输入是通过表单发送的。当服务器接收到数据时,我想将新行更改为“,”。

$teams = $_GET["teams"];
$teams = str_replace("\n",",",$teams);
echo $teams;

奇怪的是,我收到以下结果

切尔西

,真实的

,巴塞罗那

而不是 Chealsea,real,Barcelona。

怎么了?

【问题讨论】:

    标签: php string str-replace


    【解决方案1】:

    要扩展 Waage 的响应,您可以使用数组来替换两组字符

    $teams = str_replace(array("\r\n", "\n"),",",$teams);
    echo $teams;
    

    这应该正确处理这两个项目,因为单个 \n 是有效的,并且如果您只是替换 \r\n 就不会被捕获

    【讨论】:

    • trim() 只删除字符串开头和结尾的空白字符,而不是中间的。
    • 是的,我突然意识到他并没有这样做到字符串的末尾 :) 修改为更好的响应!
    • 现在有点迷茫,这两个答案有什么区别?
    • 没什么,我的只是显示了将\r\n\n转换为“,”的代码。我认为 waage 暗示了这一点,我只是展示了完成它的代码。
    • 啊,老回车/换行的麻烦。你会认为 2016 年我们现在已经过去了……
    【解决方案2】:

    尝试替换 "\r\n" 而不仅仅是 "\n"

    【讨论】:

      【解决方案3】:

      我会修剪文本并用逗号替换所有连续的 CR/LF 字符:

      $text = preg_replace('/[\r\n]+/', ',', trim($text))
      

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,但找到了不同的答案,所以我想分享一下,以防它对某人有所帮助。

        我遇到的问题是我想用<br/> 替换\n 以在HTML 中打印。我必须做的简单更改是像这样转义 str_replace("\n","<br>",($text)) 中的反斜杠:

        str_replace("\\n","<br>",($text))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-15
          • 1970-01-01
          • 2019-01-13
          • 2021-08-16
          • 2012-10-28
          相关资源
          最近更新 更多