【发布时间】:2011-09-09 02:30:54
【问题描述】:
好的.. 所以基本上,假设我们有一个链接:
$url = "http://www.site.com/index.php?sub=Mawson&state=QLD&cat=4&page=2&sort=z";
基本上,我需要创建一个函数,替换URL中的每一个东西,例如:
<a href="<?=$url;?>?sort=a">Sort by A-Z</a>
<a href="<?=$url;?>?sort=z">Sort by Z-A</a>
或者,再举一个例子:
<a href="<?=$url;?>?cat=1">Category 1</a>
<a href="<?=$url;?>?cat=2">Category 2</a>
或者,另一个例子:
<a href="<?=$url;?>?page=1">1</a>
<a href="<?=$url;?>?page=2">2</a>
<a href="<?=$url;?>?page=3">3</a>
<a href="<?=$url;?>?page=4">4</a>
所以基本上,我们需要一个函数来替换 URL 中的特定 $_GET,这样我们就不会得到重复,例如:?page=2&page=3
话虽如此,它需要聪明,所以它知道参数的开头是?还是&
我们还需要它是智能的,这样我们才能拥有这样的 URL:
<a href="<?=$url;?>page=3">3</a> (without the ? - so it will detect automatically wether to use an `&` or a `?`
我不介意为某些 $_GET 参数为每个 preg_replace 制作不同的变量,但我正在寻找最好的方法。
谢谢。
【问题讨论】:
-
抱歉帮不上忙,但您可以在这里测试正则表达式:regexpal.com 并在 php preg 替换等方面寻求帮助:regular-expressions.info/php.html 抱歉无法提供更多帮助
-
不要使用正则表达式 (stackoverflow.com/questions/1732348/…) 解析 HTML。相反,解析 DOM (stackoverflow.com/questions/3650125/how-to-parse-html-with-php)。
-
我已重新标记并使标题适合给定的描述和问题。请修改
标签: php query-string