preg_replace sql结果和字符串

时间:2017-03-22 22:06:00

标签: php mysql sqlite preg-replace

如果我使用

,我对一个简单的preg_replace有一个奇怪的问题
$pattern = '/<div class="formula">(.*?)<\/div>/';
$str = preg_replace($pattern, "", $str);

无法正常工作,没有任何内容被替换....如果我将静态字符串而不是$ str都正常工作。

string(2133) "Velocità: <div class="formulaTex">...</div><div class="formula">...</div>

为什么?要使用某种编码?

如果我将var传递给preg_replace不起作用,如果我传递静态字符串就可以了!

这是我的代码:

$db = new PDO('sqlite:ARGOMENTI_NEW.sqlite');;
$result = $db->query("SELECT * FROM Testi WHERE IDSezione = 100");
while($row = $result->fetchAll(PDO::FETCH_ASSOC)){

    $pattern = '/<div class="formula">(.*?)<\/div>/';
    $str = preg_replace($pattern, "", $row[0]["Testo"]);
    echo $str . "<br/><br/><br/>";

}

感谢

1 个答案:

答案 0 :(得分:0)

我发现错误,字符串来自sql查询戳记编码的html实体,在屏幕上我看到正确的字符串但真正的字符串有不同的字符....这就是问题!我解决了这个问题:

$str = preg_replace( "/\r|\n/", "", html_entity_decode($row[0]["Testo"]));