PHP删除HTML标记内的字符串中的换行符

时间:2018-02-08 08:07:59

标签: php regex

我不擅长正则表达式,我需要一个快速解决方案来解决这个问题。如何使用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)

1 个答案:

答案 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>