发布网友 发布时间:2022-04-06 03:40
共1个回答
热心网友 时间:2022-04-06 05:10
echo $url='?s=view&p=5';
另外 为什么
echo preg_replace('/^p=.*$/', $p, $url);
有问题
/^p=.*$/ 匹配的是 以p开头以任意字符结尾的字符串,而?s=view&p=5 很明显不是以p开头的,所以匹配失败,返回原字符串 $url;
追答
这样有两个问题:
因为没有小括号,所以不管正则如何都不会匹配替换.
(pattern): 匹配 pattern 并获取这一匹配
^ 是匹配字符串的开始位置
$str = "aaakjlkjlkdflkaaa";而 /p=^.*$/ 很明显匹配的页码不是整个字符串$url的开始位置.
可以改成这样,用$匹配字符串的结束位置
echo preg_replace('/p=(.*)$/', 'p=' . $p, $url);
另外建议能精确匹配就精确匹配.实在是没法了再用.*