使用 PHP 将参数附加到 URL 末尾
我正在努力做一些看起来很简单的事情...
我使用 PHP cURL 来抓取数据并将其插入到我的网站中。 cURL 在输出之前将数据作为字符串保存在 $data
中。
我想做的是定位 $data
中包含的所有 URL。 URL 有时包含一个固定值参数,我需要将其移动到 URL 的末尾。 URL 看起来像这样,其中 category=widgets
可以出现在 URL 中的任何位置:
http://www.mysite.com/script.php?category=widgets&show=all&size=big
我需要将参数 category=widgets
移动到所有 URL 的末尾,以便它们看起来像这样:
http://www.mysite.com/script.php?show=all&size=big&category=widgets
我想我可以首先使用 str_replace 删除所有出现的 category=widgets
,这很简单。
我遇到的问题是将 category=widgets
附加到 URL 末尾。因为 URL 是动态的,也许 preg_replace 更合适。我是正则表达式的新手,这让我很头疼。
将不胜感激您的帮助。谢谢。
I am struggling to do something which appears quite simple...
I use PHP cURL to scrape data and insert it into my website. cURL saves the data as a string in $data
before it is output.
What I am trying to do is target all of the URL's contained within $data
. The URL's sometimes contain a fixed value parameter that I need move to the end of the URL. The URL's look like this, where category=widgets
can appear anywhere in the URL:
http://www.mysite.com/script.php?category=widgets&show=all&size=big
I need to move the parameter category=widgets
to the end of all URL's, so they look like this:
http://www.mysite.com/script.php?show=all&size=big&category=widgets
I'm thinking that I can firstly remove all occurences of category=widgets
with str_replace, that's the easy bit.
The problem I have is appending category=widgets
to the end of the URL. Because the URL is dynamic, perhaps preg_replace is more appropriate. I'm new to regular expressions, and it's giving me a headache.
Would appreciate your help. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议使用 parse_url,因为从长远来看,这可能会更加稳健比字符串操作。
因此,您可以使用 parse_url 提取各种块,然后根据需要根据这些块组装新的 URL。
I'd recommend making use of the parse_url, as this is liable to be considerably more robust in the long term than string manipulation.
As such, you could use parse_url to extract the various chunks and then assemble a new URL based on these as required.