Php 如何替换<;标记值=";“价值”&燃气轮机;使用regexp标记$tag[';$thepreviousvalue';]

Php 如何替换<;标记值=";“价值”&燃气轮机;使用regexp标记$tag[';$thepreviousvalue';],php,Php,您好,我终于建立了一个很好的完美的语言系统,现在我正在尝试修复我的模板系统,以使用这个新的语言系统=p 我想替换为$tag['$thepreviousvalue'],因此我编写了以下代码 preg_replace("/<LANGUAGE value=\"^[a-zA-Z0-9_]{1,}$\">/si", ''. $langvals['$1'] .'', $data); preg_replace(“//si”,”.$langvals['$1'].',$data); 但它不起作用,

您好,我终于建立了一个很好的完美的语言系统,现在我正在尝试修复我的模板系统,以使用这个新的语言系统=p 我想替换为$tag['$thepreviousvalue'],因此我编写了以下代码

preg_replace("/<LANGUAGE value=\"^[a-zA-Z0-9_]{1,}$\">/si", ''. $langvals['$1'] .'', $data);
preg_replace(“//si”,”.$langvals['$1'].',$data);
但它不起作用,我敢打赌我在regexp方面的薄弱知识就是问题所在

preg_replace('/your_regex/e', '$var[\'$1\']', $string);
就你而言:

preg_replace('/<LANGUAGE value="([a-z0-9_]+?)">/ei', '$langvals[\'$1\']', $data);
preg\u replace('//ei','$langvals[\'$1\']',$data);
您可以阅读更多关于“e”修饰符的信息


另外,我还修复了你的正则表达式。

(建议阅读)哦,戈登,谢谢你的书……它有很多信息要知道,但是,我认为这里没有风险……我用它的值替换语言标签就是这样,这里没有Post或Get,只是在模板中经常使用……也许你还有另一个idea@SAFAD这取决于观点。从实用的角度来看,如果您是唯一一个编写标记的人,那么这没什么麻烦的,但是从不太常见的角度来看,代码是危险的。您可以使用DOM解析器轻松且更安全地实现这一点。