【发布时间】:2017-03-22 22:06:00
【问题描述】:
如果我使用简单的 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/>";
}
谢谢
【问题讨论】:
-
如果您不发布字符串,您希望我们如何回答?肯定有区别,问题是 what 区别。可能是一些看起来相似的 unicode 字符。
-
需要向我们展示您的
$str和$pattern中的var_dump() -
我用字符串和模式的 vardump 更新我的问题!
-
为我工作:ideone.com/7M9BEe
-
静态字符串也适用于我的代码,问题是当我尝试从 sqlite 查询中获取此字符串时...我更新了问题
标签: php mysql sqlite preg-replace