gpt4 book ai didi

php - 字符 $00、$11 等,被 preg_replace 错误替换

转载 作者:行者123 更新时间:2023-12-04 05:54:54 26 4
gpt4 key购买 nike

在任何地方的简单模板解析器中 $00 , $11等出现在它被删除的 HTML 中。我没有看到我的模式中是什么导致 10 美元从替代品中扣除。

奇怪的是,除了处理标记的主要 preg_replace 函数之外,我几乎注释掉了所有代码。看似没有联系,但几乎所有其他内容都已删除。

功能 (不显示注释掉的内容):

public function output() {
$output = file_get_contents($this->file);

foreach ($this->values as $key => $value) {
$dynamic = preg_quote($key);
$pattern = '%\[@'.$dynamic.'.*?\]%';
$output = preg_replace($pattern, $value, $output);

if ($key == 'objective') {
$objective = $value;
}
}
}

HTML 摘录 :
[if @objective]<div id="objective">[@objective]</div>[/if]

“目标”的原始值 (即, $value ):

Obtain a position at XYZ Company where $words $100 !100 maximize my management skills, quality assurance, program development, and training experience.



“目标”的新值 :

Obtain a position at XYZ Company where $words 0 !100 maximize my management skills, quality assurance, program development, and training experience.

最佳答案

(对问题发表评论的后续行动。)
$xx (其中 x 是一个数字)用于 preg_replace 的替换字符串中的反向引用.如果您希望替换字符串包含 $xx ,你必须逃避它:

$value = preg_replace('/\\$\\d+/', '\\\\$0', $value);

这将取代 $xx来自 \$xx$value .

关于php - 字符 $00、$11 等,被 preg_replace 错误替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9628287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com