php 从字符串中去除 [[:char_class:]]
php strips [[:char_class:]] from the string
在 php 中连接 mysql 正则表达式字符 类 时,它们会从结果字符串中消失,即:
$regexp_arr = array('(word1)', '(word2)');
$value = 'word3';
$regexp_str = implode('[[:space:]]', $regexp_arr);
$v1 = '[[:<:]](' . $value . ')';
echo $regexp_str;
// gives
'(word1)(word2)';
// instead of
'(word1)[[:space:]](word2)'
echo $v1;
// gives
'(word3)'
//instead of
'[[:<:]](word3)'
我试过用双引号",结果还是一样。
在php中是否有特殊的方式来连接它?为什么 '[[:char_class:]]'
被剥夺了?
服务器php版本是5.6.36
在MODX中,[[
和]]
是用于indicate they are tags MODX needs to process的特殊字符。即使您 echo
或从数据库中检索它,MODX 也会在渲染时处理它们。
对于调试,您可以使用 exit()
跟进您的 echo。
echo $regexp_str;
exit();
这会使 MODX 短路并为您提供包括方括号在内的字符串的实际值。
如果您希望该值在 MODX 呈现的资源或模板中可见,那么您必须先用它们的 html 实体替换它们:
$regexp_str = str_replace(['[',']'], ['[', ']'], $regexp_str);
在 php 中连接 mysql 正则表达式字符 类 时,它们会从结果字符串中消失,即:
$regexp_arr = array('(word1)', '(word2)');
$value = 'word3';
$regexp_str = implode('[[:space:]]', $regexp_arr);
$v1 = '[[:<:]](' . $value . ')';
echo $regexp_str;
// gives
'(word1)(word2)';
// instead of
'(word1)[[:space:]](word2)'
echo $v1;
// gives
'(word3)'
//instead of
'[[:<:]](word3)'
我试过用双引号",结果还是一样。
在php中是否有特殊的方式来连接它?为什么 '[[:char_class:]]'
被剥夺了?
服务器php版本是5.6.36
在MODX中,[[
和]]
是用于indicate they are tags MODX needs to process的特殊字符。即使您 echo
或从数据库中检索它,MODX 也会在渲染时处理它们。
对于调试,您可以使用 exit()
跟进您的 echo。
echo $regexp_str;
exit();
这会使 MODX 短路并为您提供包括方括号在内的字符串的实际值。
如果您希望该值在 MODX 呈现的资源或模板中可见,那么您必须先用它们的 html 实体替换它们:
$regexp_str = str_replace(['[',']'], ['[', ']'], $regexp_str);