使用php替换url中的页面


Replace the page from a url using php

我在php变量中存储了这种类型的url:

$url1 = 'https://localhost/mywebsite/help&action=something';
$url2 = 'https://localhost/mywebsite/jobs&action=one#profil';
$url3 = 'https://localhost/mywebsite/info&action=two&action2=something2';
$url4 = 'https://localhost/mywebsite/contact&action=one&action2=two#profil';

我想用一种非常简单的方式将页面help, jobs, info, contact替换为home,如下所示:

echo replaceUrl($url1);
https://localhost/mywebsite/home&action=something
echo replaceUrl($url2);
https://localhost/mywebsite/home&action=one#profil
echo replaceUrl($url3);
https://localhost/mywebsite/home&action=two&action2=something2
echo replaceUrl($url4);
https://localhost/mywebsite/home&action=one&action2=two#profil

所以这是我找到的解决方案:

function replaceUrl($page){
    $pieces = explode("/", $page);
    $base = '';
    for ($i=0; $i<count($pieces)-1; $i++) $base .= $pieces[$i].'/';
    $hash = strpbrk($pieces[count($pieces)-1], '&#');
    return $base.'home'.$hash;
}

您需要添加类似的内容

RedirectMatch 301 help(.*) home$1

到你的.htaccess文件。我不确定PHP是否适合这份工作。

如果你真的想用这个值修改字符串(这是你的标签和..注释所指示的),你需要做的是:

$url = "https://localhost/mywebsite/help&action=something#profil"
$url = str_replace("help", "home", $url);
echo $url; // https://localhost/mywebsite/home&action=something#profil