Sie haben in Ihrer Frage angegeben, dass Sie Seite = xx von die URL ENTFERNEN möchten.
Es gibt nichts wie der Geruch von regex am Nachmittag ... Also musste ich einen Stich an diesem und dem folgenden sollte es tun.
Ich bin sicher, dass es schlauer gemacht werden kann, aber es bringt Sie zum Laufen.
<?php
/*
* My urls can be
* pagename?page=2 or
* pagename?param=235235&page=2 or
* pagename?page=10¶m=5431 or etc.
*/
function remove_page_from_url($url){
// For the case where ?page=xx¶m
if (preg_match('/\?page=[0-9]{0,}&/',$url)){
$url = preg_replace('/&/','?',$url,1); // Only replace the 1st one.
}
return preg_replace('/[\?|&]page=[0-9]{0,}/','',$url);
}
// The Testing during development
//Case 1: This works
$url = 'pagename?page=10';
echo remove_page_from_url($url);
echo '<br>';
//Case 2: This works
$url = 'pagename?param=235235&page=2';
echo remove_page_from_url($url);
echo '<br>';
//Case 3: This works
//This messes things up as we also have to change a & to a ?
$url = 'pagename?page=10¶m=5431';
echo remove_page_from_url($url);
echo '<br>';
//Case 4: This Works
//This messes things up as we also have to change a & to a ? but only the first one.
$url = 'pagename?page=10¶m=5431&something=2';
echo remove_page_from_url($url);
echo '<br>';
Sie beginnen also im einfachsten Fall und arbeiten sich hoch.
/*
The Results
pagename?page=10
=> pagename
pagename?param=235235&page=2
=> pagename?param=235235
pagename?page=10¶m=5431
=> pagename?param=5431
pagename?page=10¶m=5431&something=2
=> pagename?param=5431&something=2
*/
So ist es der Code innerhalb Funktion remove_page_from_url($url)
, die Sie interessieren.