如果我使用
,我对一个简单的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/>";
}
感谢
答案 0 :(得分:0)
我发现错误,字符串来自sql查询戳记编码的html实体,在屏幕上我看到正确的字符串但真正的字符串有不同的字符....这就是问题!我解决了这个问题:
$str = preg_replace( "/\r|\n/", "", html_entity_decode($row[0]["Testo"]));