我有一个看起来像这样的字符串:
$fetched = name=myName zip=420424 country=myCountry;
// and so on, it is not an array
我从api中获取这些值。
我只想要zip = 873289(实际上只是数字)。
所以我用:
// $fetched above is the output of the function below
$fetched = file_get_contents("http://example.com");
这样我就可以获取内容,并且可以将其与此代码匹配
$zip = preg_match ('/zip=[0-9]+/', $fetched );
但是我想将它存储在变量中,什么是存储匹配结果的函数?
答案 0 :(得分:2)
您需要用括号指示要捕获的部分,然后为preg_match提供一个额外的参数来选择它们:
$matches=array();
if (preg_match ('/zip=([0-9]+)/', $fetched, $matches ))
{
$zip=$matches[1];
}
答案 1 :(得分:0)
preg_match()将其结果存储在第三个参数中,该参数传递给by reference。所以而不是:
$zip = preg_match ('/zip=[0-9]+/', $fetched);
你应该:
preg_match ('/zip=[0-9]+/', $fetched, $zip);