我不擅长正则表达式,我需要一个快速解决方案来解决这个问题。如何使用PHP删除HTML标记内的字符串中的换行符,如下所示:
输入:
<li>first line</li>
<li>second
line</li>
<li>third
line and
the last</li>
输出:
<li>first line</li>
<li>second line</li>
<li>third line and the last</li>
到目前为止我尝试的没有取得任何成功:
<?php
preg_match('/<li><\/li>/')
preg_replace('/<li>\n+<\/li>/', '', $string)
答案 0 :(得分:1)
我对Regex不太满意,但这就是我所做的:
<?php
$string = '<li>first line</li>
<li>second
line</li>
<li>third
line and
the last</li>';
// Fetch each <li> element
$new_string = preg_replace_callback ( '/<li>(.*?)<\\/li>/mis', function ( $aMatches ) {
// Replace enters within <li> and </li>
return preg_replace ( '/[\\r\\n]/', '', $aMatches[0] );
}, $string);
echo $new_string;
结果是:
<li>first line</li>
<li>second line</li>
<li>third line and the last</li>