【发布时间】:2013-04-03 22:23:54
【问题描述】:
我有一个字符串,其中有一个带有变量的 url,例如:
http://www.example.com/?foo=example1&foo1=example2&foo2=example3
我对 PHP 很陌生,在查看分隔符和修饰符时,我无法完全理解如何将它们正确地应用于我的情况而不会出现某种错误。 我想知道是否有人可以指出我如何将“foo1”提取到它自己的变量中以便在其他地方使用的正确方向。我需要提取“&foo1=”和以下“&”之间的数据。
这就是我所拥有的(不正确的分隔符/修饰符):
("&foo1=[^&]+?\&'", $getData))
那么我该如何解决这个问题以提取“foo1”的数据呢?
编辑:这个带有我需要的变量的 URL 在一个字符串中,而不是一个 URL 本身,它是一个外部链接。变量也不总是 URL 形式,它们通常只是在字符串中,就像这样的变量:
foo=example1&foo1=example2&foo2=example3
那么从这样的字符串中,我将如何提取“foo1”的值?
【问题讨论】:
-
$_GET['foo1']和$_GET['foo2'] -
您是想更好地理解正则表达式,还是真的需要提取键/值对?有更简单的方法可以做到这一点。
-
是你的网站,所以你想提取你得到的变量吗?还是您要解析并获取这些变量的 URL?
-
PHP 内置了各种功能,包括 url 和查询字符串解析。我建议您在编写自己的代码之前先检查一下(除非仅用于学习目的)。
-
尝试使用正则表达式进行解析是徒劳的。幸运的是,对于这种 exact 案例,您有函数
parse_url()和parse_str()。