【问题标题】:php move vaiable substring to end of stringphp将变量子字符串移动到字符串末尾
【发布时间】: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


【解决方案1】:

我不知道这是否正是您正在寻找的,但您可以尝试在您的参数上使用正则表达式。如果您在q= 之前和之后有更多参数,您将不得不更多地操作正则表达式,并且您必须在数组中循环以定义您正在寻找的参数的正确位置。这是您可以执行的操作的示例。

$baseUrl = 'http://www.google.com';
$parseUrl = parse_url($baseUrl.'/search?&abc=xyz:??????q=hello+there');
preg_match_all('/&?(.*)q=(.*)/',$parseUrl['query'],$matches, PREG_PATTERN_ORDER);
echo $baseUrl.'/search?q='.$matches[2][0].'&'.$matches[1][0];

【讨论】:

  • 是的。你很好。我知道你要去哪里。我会试着给出一个答案。 1-你好,每次都不一样。我认为谷歌,这是针对 BTW 的,通常以 https: 开头,但有时会出现 http:。????只是举例。 abc:xyz: 是针对搜索命中的年龄。它可以是 search?[null|&]tbs=qdr:[null|h|d|w|m|y] 所以简单假设在 tbs=qdr 部分和 q= 部分之间没有任何内容。很高兴你进来。我对 php 函数发疯了。最后,我想测试所有这些是否适用于任何给定的 $url?
猜你喜欢
  • 2021-10-04
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 2013-08-25
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
相关资源
最近更新 更多