是否有PHP字符串函数将多行字符串转换为单行字符串?
我从包含多行的API中获取了一些数据.例如:
<p>Some Data</p>
<p>Some more Data</p>
<p>Even More Data</p>
Run Code Online (Sandbox Code Playgroud)
我将该数据分配给变量,然后将该变量作为CSV文档的部分/"单元"进行回显.
它打破了我的CSV文档.它不是显示在一个单元格中的所有内容(在OpenOffice Calc中查看时),而是显示在多个单元格和行中.它应该包含在一个单元格内.
我想将字符串转换为:
<p>Some Data</p><p>Some more Data</p><p>Even More Data<p>
Run Code Online (Sandbox Code Playgroud)
或者,最好的解决方法是什么?
Pet*_*ist 30
要删除结束和打开</ p> ... <p>标记之间不必要的任何内容,您可以使用正则表达式.我还没有清理它,所以它只是供参考.
$str = preg_replace("/(\/[^>]*>)([^<]*)(<)/","\\1\\3",$str);
Run Code Online (Sandbox Code Playgroud)
它将剥离p标记之间的任何内容,例如换行符,空格或任何文本.
再次使用delete-only-linebreaks-and -lineslines方法
$str = preg_replace("/[\r\n]*/","",$str);
Run Code Online (Sandbox Code Playgroud)
或者使用更快但不灵活的简单字符串替换方法
$str = str_replace(array("\r","\n"),"",$str);
Run Code Online (Sandbox Code Playgroud)
选择一下!
让我们比较一下我的方法
性能总是相对于最快的方法,在这种情况下是第二个.
(越低越好)
Approach 1 111
Approach 2 300
Approach 3 100
Run Code Online (Sandbox Code Playgroud)
方法1
剥离标签之间的所有内容
方法2和3
剥离换行符和换行符
这只会删除换行符,您显然不想删除空格,因为这将应用于段落标记中的字符串。
$str = str_replace(array("\n", "\r"), '', $str);
Run Code Online (Sandbox Code Playgroud)