在php中替换url字符串中的项目

时间:2013-12-23 09:54:49

标签: php

我是php的新手。 我正在尝试用"hash(#)"

替换网址字符串中的"ampersand(&)".

例如:

如果网址是:`

http://www.abc.com/Cat/pgecategory.aspx?cid=8730&via=top#pge=2&pgeSize=36

我想将其更改为

http://www.abc.com/Cat/pgecategory.aspx?cid=8730&via=top&pge=2&pgeSize=36

我尝试了以下内容:

str_replace("#","&",$url);

但上述不起作用?我做错了什么?

我怎样才能完成上述任务?

4 个答案:

答案 0 :(得分:4)

请记住,str_replace会返回一个字符串。它不会改变您传递给它的字符串。

尝试,

$url = str_replace("#", "&", $url); 
echo $url;

答案 1 :(得分:3)

str_replace函数返回修改后的字符串,你必须像这样设置你的URL:

$url = str_replace("#","&",$url);

答案 2 :(得分:2)

怎么没用呢。 ?您是否尝试过输出结果?

<?php
$url='http://www.abc.com/Cat/pgecategory.aspx?cid=8730&via=top#pge=2&pgeSize=36';
echo $url=str_replace("#","&",$url);

答案 3 :(得分:0)

这取决于你想要做什么。

如果您尝试修改客户端请求的网址,则无法做到这一点。

浏览器根本不发送URL的哈希部分 - 因此PHP甚至无法读取它。但是,您可以通过Javascript使用window.location.hash来阅读它。

来源:Can I read the hash portion of the URL on my server-side application (PHP, Ruby, Python, etc.)?

如果您尝试修改存储在变量中的网址,则可以这样做。

str_replace不会更改$url的值 - 它只会返回结果。如果您希望$urlstr_replace的返回值匹配:

$url = 'http://www.abc.com/Cat/pgecategory.aspx?cid=8730&via=top#pge=2&pgeSize=36';
$url = str_replace('#', '&', $url);

甚至更短:

$url = str_replace('#', '&', 'http://www.abc.com/Cat/pgecategory.aspx?cid=8730&via=top#pge=2&pgeSize=36');