PHP 将 mysql 的部分结果解析为 preg_replace 上的变量

标签 php mysql parsing preg-replace

我在我的 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/

相关文章:

php - Jquery keyup 事件与 AJAX 导致不正确的结果

javascript - 如何为 PhoneGap 创建服务器端登录?

javascript - PHP 'include'函数的现代JS方法

mysql - SQL更新报告

c# - 如何检测 MySql 查询是否成功并输出消息?

powershell - 从文本文件中提取 URL,然后使用 Powershell 进行解析

java - 无法解析获取无效数组范围 : 5 to 5 的响应

php - 如何使用PHP和SQL Server 2008调用存储过程

MySQL Query 似乎没有输出预期

java - 根据 Java 中的语法验证字符串