6

我在 php 中有一个不包含新行('\n')的长字符串。

我的编码约定不允许超过 100 个字符的行。

有没有办法在不使用 . 效率较低的运算符 - 我不需要连接 2 个字符串,因为它们可以作为单个字符串给出。

谢谢!

4

3 回答 3

2

这是解决所有问题的正确代码:

$myStr = "
    here is my string
    and it is spread across multiple lines
  ";
  $myStr = str_replace(array("\r","\n"), "", $myStr);  

它基于 Lior Cohen 的回答,但也去掉了回车符“\r”。

于 2016-11-28T01:37:23.007 回答
1

使用heredoc语法(或nowdoc,取决于您的需要,查看文档链接):

$multiline = <<<EOT
My name is "$name". I am printing some $foo->foo.
This should print a capital 'A': \x41
EOT;
$singleline = str_replace("\n","",$multiline);

但这很糟糕......对不起:-)

于 2009-08-18T12:06:30.917 回答
1

您可以从字符串中删除换行符:

  $myStr = "
    here is my string
    and it is spread across multiple lines
  ";
  $myStr = str_replace("\n", "", $myStr);  

对于此类事情,您仍应使用连接运算符 (.)。如果您使用操作码缓存 (APC),则此处的性能损失可以忽略不计,并且在将数据库访问和其他逻辑(包括循环)带入运行时方程时,这实际上不会有任何明显的影响。

更新:

阅读下面的页面。上面的结论在文本中并不容易获得,但仔细检查应该表明它是有效的。

http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html

于 2009-08-18T12:07:54.940 回答