如果变量内容结束,则删除它

时间:2011-08-02 09:17:16

标签: php regex

    $var1 = "a<b>
        b<br>
        c
";

        $var2 = "a<b>
        b<br>
        c<br>
";

如何在<br>中的c后检测并删除$var2

感谢。

3 个答案:

答案 0 :(得分:3)

$var2 = "a<b>b<br>c<br>";

$var2 = trim($var2);
if(substr($var2, -4) == "<br>")
{
    $var2 = substr($var2, 0, -4); 
}

echo($var2); //a<b>b<br>c

答案 1 :(得分:3)

正则表达式解决方案

preg_replace('#<br>\\s*$#', '', $var2);

它还使用字符串末尾的可选换行符和空格。

$将正则表达式锚定到字符串的末尾。

\s是一个空白字符(包括换行符)

*表示0或更多

这意味着正则表达式匹配<br>后跟字符串末尾的可选空格,preg_replace将其替换为空字符串。

答案 2 :(得分:2)

我使用preg_replace()删除所有换行符和br代码(<br><br/><br />等):

$str = "
    a<b>
    b<br>
    c<br><br>
    <br/><br />
    <br>
";
$str = preg_replace('#(?:\s+|<br\s*/?>)+$#', '', $str);
var_dump($str);

输出:

string(28) "
    a<b>
    b<br>
    c"