自定义的规则串分界符,众多的\看着不眼晕吗 i 不区分大小写 s 忽略换行 U 非贪婪匹配对于 #10 的代码和结果,你都不看的吗?
<?php function replace($a) { if (is_array($a)) { foreach($a as $k => $v) { $a[$k] = replace($v); } return $a; } else { return preg_replace('#/\*((.*)|(?R))*\*/#is', '', $a); } } $_POST = array("preg_replace/*This is a PCRE function*/", "preg_replace/*This is a PCRE/*Do you know?/*Maybe you are right*/*/ function*/ function", array("preg_replace/*This is a PCRE function*/")); $_POST = replace($_POST); print_r($_POST); ?>
$data = '/* test */';
$data = preg_replace($pattern, '\1\2', $data);
$pattern = '/^(\/\*).*(\*\/)$/i'; 这个.难道不代表星号跟斜杠么?????
这个情况只能使用正则解决了。
$str = '111/* test1 */AAA/* test2 */BBB/* test3 */CCC/* test4 */111';
echo preg_replace('/\/\*.*\*\//U', '', $str);
echo preg_replace('#/\*.*\*/#isU', '', $s);想要过滤 类似 为空并包括 斜杠和星 。把其内容替换为空。
i 不区分大小写
s 忽略换行
U 非贪婪匹配对于 #10 的代码和结果,你都不看的吗?
<?php
function replace($a)
{
if (is_array($a)) {
foreach($a as $k => $v) {
$a[$k] = replace($v);
}
return $a;
} else {
return preg_replace('#/\*((.*)|(?R))*\*/#is', '', $a);
}
}
$_POST = array("preg_replace/*This is a PCRE function*/",
"preg_replace/*This is a PCRE/*Do you know?/*Maybe you are right*/*/ function*/ function",
array("preg_replace/*This is a PCRE function*/"));
$_POST = replace($_POST);
print_r($_POST);
?>
+1$s = '数据';
echo preg_replace('#/\*.*\*/#isU', '', $s);就别人说的这个代码,你拿去试试