我正在建立一个系统,从教育中取出所有可选科目并将其放入数据库中。这很好。
现在我想确定如果您选择“财务A”,您不能选择“财务C”,我正在尝试使用preg_replace
执行此操作,因为主题是数组。但它一直给我一个错误:
Delimiter must not be alphanumeric or backslash
现在这里有一些代码:
if
(
preg_replace("/" + $name_without_level + " (A|B|C)/", "", $andre_fag)
== $andre_fag
|| preg_replace("/" + $name_without_level + " (A|B|C)/", "", $andre_fag2)
== $andre_fag2
){
变量$name_without_level
给出没有A,B或C的主题名称,等级。
如何修复错误?我已经尝试了我能想到的一切。
答案 0 :(得分:2)
想象一下,$name_without_level
只是"Finance / Markets"
。想象一下你的正则表达式会发生什么。
使用preg_quote
Docs确保您按字面意思查找正确的字符串,并且不会破坏正则表达式:
$pattern = sprintf('/%s (A|B|C)/', preg_quote($name_without_level));
if
(
preg_replace($pattern, "", $andre_fag) == $andre_fag
|| preg_replace($pattern, "", $andre_fag2) == $andre_fag2
){
这并不意味着这是您唯一的代码问题。您需要进行错误检查才能真正找到错误。