【发布时间】:2018-02-25 14:35:55
【问题描述】:
说我有一个字符串:
something.something/search?&abc=xyz:??????q=hello+there
或
something.something/search?abc=xyz:??????q=hello+there
我需要将变量子字符串:[&]abc=xyz:?????? 移动到 sting 的末尾。
所以我结束了:
something.something/search?q=hello+there&abc=xyz:??????
子字符串的长度在开始时是未知的。
我们知道子字符串在第一个 ? 之后开始,并且它
以&abc=xyz:????? 可能或abc=xyx:????? 可能开头。
????? 可能有也可能没有,它们的长度不确定。
和内容。
我们知道子字符串以q=...... 结尾。
那么第一个 ? 到第一个 q= 之间的内容将被删除并添加到字符串中。
但是,结尾必须以 & 开头,并且只能以 1 个 & 开头。
所有这些仅适用于包含 something.something/search? 的字符串。
子字符串是一个变量。
我也想知道在尝试更改之前是否应该测试一些东西。
谢谢
它说要编辑问题,所以就这样吧。我想你越来越近了。 一个典型的 $url 是: https://www._oogle.com/search?&tbs=qdr:q=hello+there //你好+这里只是例子。 https://www._oogle.com/search?tbs=qdr:q=hello+there //...qdr:null|h|d|w|m|y 用于过去的页面搜索。 (几岁) null(all),hour,day,week,month,year。 如果 tbs:qdr 部分首先出现,其他东西会中断,所以我必须在之后移动它 q=... 部分。 当然还有要考虑的 http:// 变体。
我正在考虑使用我制作的 contains 函数来查看此 $url 是否需要这种处理。然而,它需要捕捉“_oogle.com/search?&tbs=qdr:”的可能性。 (以 & 符号开头) [null|&]tbs=qdr:[null|h|d|w|m|y] 。我想在“q=”部分之前可能还有其他参数,但让我们稍后再担心。
if (contains($url, "_oogle.com/search?tbs=qdr:"))
function contains($haystack, $needle) {
if(stristr($haystack, $needle) === FALSE) { return false; }
else {return $needle; }
【问题讨论】:
-
谢谢 Mark,请问是 parse_url 还是 parse_str?
-
我会尝试所有这些并告诉你。
-
好的,所以我应该使用函数作为数组将被使用?
-
我不清楚是否以及如何进行测试以查看是否有必要。
标签: php string variables redirect