PHP从字符串中提取

Eng*_*ine 1 php regex string extract

我有一个字符串,其中包含一个带变量的url,例如:

http://www.example.com/?foo=example1&foo1=example2&foo2=example3
Run Code Online (Sandbox Code Playgroud)

我对PHP很陌生,在查看分隔符和修饰符时,我无法理解如何在不遇到某种错误的情况下正确应用它们.我想知道是否有人可以指出我正确的方向如何将"foo1"提取到它自己的变量中以供其他地方使用.我需要在"&foo1 ="和以下"&"之间提取数据.

这就是我所拥有的(不正确的分隔符/修饰符):

("&foo1=[^&]+?\&'", $getData))
Run Code Online (Sandbox Code Playgroud)

那么我怎么能解决这个问题来提取"foo1"的数据呢?

编辑:这个带有我需要的变量的URL是WITHING一个STRING,而不是一个URL本身,它是一个外部链接.变量也不总是以URL形式存在,它们通常只是在字符串中作为变量,如下所示:

foo=example1&foo1=example2&foo2=example3
Run Code Online (Sandbox Code Playgroud)

所以从这样的字符串中,我如何提取"foo1"的值?

Mch*_*chl 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',
)
Run Code Online (Sandbox Code Playgroud)