我正在尝试删除页面查询,在页面上构建分页。
网址是
$url = www.example.com?category=computers&page=10
正则表达式
$cleanUrl = preg_replace('/page=[0-9,]+&/', '', $url);
这不是找到匹配的吗?
答案 0 :(得分:0)
你应该用〜来开始和结束你的模式。这将有效:
preg_replace('~&page=[0-9]+~', '', 'www.example.com?category=computers&page=10');
答案 1 :(得分:0)
您的正则表达式失败,因为您正在page
参数后面搜索&符号及其值。
您可以通过在其后附加问号来使&符号成为可选项。
$url = 'www.example.com?category=computers&page=10';
$cleanUrl = preg_replace('/page=[0-9,]+&?/', '', $url);
示例,https://regex101.com/r/uW8uV8/1
要获得更多正则表达式,请尝试:
<?php
$url = 'www.example.com?&category=cat&page=10';
$cleanUrl = rtrim(preg_replace('/(&|\?)page=[0-9,]+&?/', '$1', $url), '&?');
echo $cleanUrl;
这需要rtrim
函数来删除尾随参数glue。这将占... ...
页面本身,www.example.com?page = 10
页面作为最后一个参数,www.example.com?specpecies = Wolf&amp; page = 10
Page为第一个参数,www.example.com?page = 10&amp; specpecies = wolf
页面作为中间参数,www.example.com?cat = tom&amp; mom = jerry&amp; page = 10&amp; specpecies = Wolf