阻止PHP将反斜杠添加到字符串[关闭]
I have a function that builds a regex based on an array. The problem is that PHP keeps adding backslashes to some of the characters, and it keeps messing up the regex.
Here is my function:
private static $allowedPermissions = [
/*SV*/
'user_add',
'user_edit',
'user_delete',
'user_view'];
$regexrule = '/';
foreach (self::$allowedPermissions as $allowedPermission) {
$regexrule .= '\b'.$allowedPermission.'\b';
if(end(self::$allowedPermissions) !== $allowedPermission) $regexrule .='|';
}
$regexrule .= "/";
return 'regex:'.$regexrule;
It is adding backslashes where I don't expect them:
regex:\/\\buser_add\\b|\\buser_edit\\b|\\buser_delete\\b|\\buser_view\\b|\\bpatient_add\\b|\\bpatient_edit\\b|\\bpatient_delete\\b|\\bpatient_view\\b|\\bmake_per\\b|\\bmake_per_withconfirmation\\b|\\bconfirm_per\\b|\\beval_per\\b|\\beval_per_withconfirmation\\b|\\bconfirm_per_report\\b\/
Is there a workaround?
我有一个基于数组构建正则表达式的函数。 问题是PHP不断向某些字符添加反斜杠,并且它一直搞乱了正则表达式。 p>
这是我的功能: p>
private static $ allowedPermissions = [
/ * SV * /
'user_add',
n'user_edit',
'user_delete',
'user_view'];
$ regexrule ='/';
foreach(self :: $ allowedPermissions as $ allowedPermission){
$ regexrule。='\ b'。$ allowedPermission。'\ b';
if(end(self :: $ allowedPermissions)!== $ allowedPermission)$ regexrule。='|';
}
$ regexrule。=“/”;
返回'正则表达式:'。$ regexrule;
code> pre>
它正在添加反斜杠,我不指望它们: p >
正则表达式:\ / \\ buser_add \\ C | \\ buser_edit \\ C | \\ buser_delete \\ C | \\ buser_view \\ C | \\ bpatient_add \\ C | \\ \\ bpatient_edit C | \\ \\ bpatient_delete C | \\ \\ bpatient_view C | \\ \\ bmake_per C | \\ \\ bmake_per_withconfirmation C | \\ \\ bconfirm_per C | \\ \\ beval_per C | \ \ beval_per_withconfirmation \\ b | \\ bconfirm_per_report \\ b \ / code> p>
正则表达式的备份截图 p>
是否有解决方法? p>
DIV>
I found out that returning it in json format was adding the backslashes.