【问题标题】:Replace new line | PHP替换新行 | PHP
【发布时间】:2011-06-02 21:30:28
【问题描述】:

我正在开发一个脚本,它使用file_get_contents() 从网页中获取所有内容,然后它会删除所有 HTML、JavaScript 和 CSS 格式并将其存储在一个变量中。

然后我将该 PHP 变量分配给 JavaScript 变量。 现在我的问题是文本(我已分配给 JavaScript var)包含许多换行符,这在运行我的程序时给了我一个 JavaScript 错误。

简单的str_replace("\n", "", $text); 不适合我。我也试过ltrimtrimrtrim

【问题讨论】:

    标签: php javascript replace


    【解决方案1】:

    你试过str_replace("\r\n", "", $text);吗?

    【讨论】:

      【解决方案2】:

      您正在将字符串分配给 JavaScript 变量,您可以使用 json_encode

      像这样:

      <script type="text/javascript">
      var g_text = <?php echo json_encode($text); ?>;
      </script>
      

      注意:您也可以通过这种方式将数组和数字传递给 JavaScript。

      【讨论】:

      • 嘿,谢谢你们所有人……特别是泰国和 Cary Chow
      【解决方案3】:

      试试这个代码。它替换了所有操作系统中所有可能的换行符。

      str_replace("\r\n", "", $text); // Replace CR+LF
      str_replace("\r", "", $text);   // Replace CR
      str_replace("\n", "", $text);   // Replace LF
      

      【讨论】:

      • 如果你做了 CR 和 LF 替换,那么 CR+LF 替换是没用的。
      【解决方案4】:

      我想存储的字符串包含 html,对吧? 如果您愿意,可以使用nl2br 将\n 转换为BR 标记。

      【讨论】:

        【解决方案5】:

        你只需要一个电话:

        $string = str_replace(array("\r", "\n"), '', $string);
        

        $string = strtr($string, "\r\n", '');
        

        不需要多次调用,也不需要多个组合...但它仍然处理 3 种可能的行结束序列(Windows \r\n、Linux \n、Mac \r)...

        【讨论】:

          【解决方案6】:

          仅供参考:请记住在搜索/替换换行符时始终使用双引号。如果您使用单引号,例如:

          print str_replace(array('\n', '\r\n', '\r'), '', $strBorked);
          

          它永远不会起作用!您必须使用:

          print str_replace(array("\n", "\r\n", "\r"), '', $strBorked);
          

          这是因为 PHP 不会在单引号内解释,而 \n 是一个字符 php 只会在双引号内转换为文字换行符。这当然适用于所有控制字符。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-09-03
            • 2017-05-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-09
            • 2012-08-29
            • 2011-11-14
            相关资源
            最近更新 更多