我在我的 mysql 数据库中存储了一些标志,因此我可以使用以下代码动态生成链接和标题标签;然而,它似乎将任何带有美元符号的东西解析为变量。
foreach($result as $value){
$id = $value['id'];
$title = $value['title'];
$synopsis = $value['synopsis'];
$synopsis = preg_replace('/<!--TITLE-->/', $title, $synopsis);
}
因此,如果标题是“$500,000 donated to blah blah”,它将输出“0,000 donated to blah blah”。我怎样才能让它不解析出来?对于这种特殊情况,我无法将 ascii 值 $
存储在数据库中。
最佳答案
preg_replace
查看第二个字符串,如果它看到 $,则将其和后面的数字视为对具有该编号的捕获组的引用。 (不过,它只需要前两位数字;数字范围从 0 到 99。)并且由于您没有第 50 个捕获组,它会将 $50
解释为空。
如果您只是想查找和替换已知字符串而不是模式,请尝试使用 str_replace
而不是 preg_replace
。它没有这样的问题。
关于PHP 将 mysql 的部分结果解析为 preg_replace 上的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969030/