我的网址结构如下:www.example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx
我想要删除www.example.co.uk/dynamicpage/page后面的所有内容。
我尝试了以下方法:
$data = explode('?',$data); $data = $data[0];
我还尝试使用 str_replace,但没有成功。
我尝试了其他人建议的解决相似问题的方法,但无论我做什么,它似乎都忽略了?之后的所有内容。
编辑
dynamicpage将根据在URL中键入的内容从我的数据库中提取城市/城镇名称,例如 www.example.co.uk/london 动态页面将显示伦敦内容。www.example.co.uk/london/page 也应该显示伦敦内容,它确实这样做,但不包括 ?gclid=Cj0KCQ877xx ,它只显示没有与伦敦相关的内容以及我设置的标准内容。
更新的代码
$data = "http://example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx";
$url_arr = parse_url($data); print_r($url_arr);
返回值
Array ( [scheme] => http [host] => example.co.uk [path] => /dynamicpage/page [query] => gclid=Cj0KCQ877xx )
编辑
使用htaccess解决问题
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} "gclid=" [NC]
RewriteRule (.*) /$1? [R=301,L,QSD]
<IfModule mod_rewrite.c>
var_dump($data)
返回什么? - user3783243$data
变量是你想要的吗? - Brett Gregsonscheme
、host
和path
组合在一起,如果你不关心scheme
,可以将其排除在外。 - user3783243