我是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);
但上述不起作用?我做错了什么?
我怎样才能完成上述任务?
答案 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
的值 - 它只会返回结果。如果您希望$url
与str_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');