1

我有一个字符串,其中有一个带有变量的 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”的值?

4

3 回答 3

5

首先parse_url它,然后将查询部分传递给parse_str

$url ="http://www.example.com/?foo=example1&foo1=example2&foo2=example3";
$parsedUrl = parse_url($url);
$query = array();
parse_str($parsedUrl['query'],$query);
var_dump($query);

-- array (
  'foo' => 'example1',
  'foo1' => 'example2',
  'foo2' => 'example3',
)
于 2013-04-03T22:27:28.870 回答
0

你的网站吗?你想知道传递的值是什么吗? $_GET['...'].

否则,如果您想解析URL 并提取变量,

preg_match_all('/([^?&=#]+)=([^&#]*)/', $url, $matches);

于 2013-04-03T22:31:15.207 回答
-2

只是扩展“类”的答案以帮助您理解,例如?foo=example1意味着它foo是一个带有 value 的变量example1

在 php 中,要从 url 获取这些值,只需使用$_GET['myvariablename'],在您的情况下,它将是

$var1 = $_GET['example1'];
$var2 = $_GET['example2'];
$var3 = $_GET['example3'];
于 2013-04-03T22:28:58.843 回答