PHP preg_match_all 进入功能时不起作用
PHP preg_match_all is not working when into function
有一组代码我已经使用了一段时间,用于在文件中查找字符串。但是当我将它放入一个函数中时,我没有得到结果,我认为它是 preg_match_all
不起作用。我不知道如何解决这个问题。
这是我的代码(copy/pasted 来自教程):
function getprice($keyword, $outputvar) {
$pattern = preg_quote($keyword, '/');
$pattern = "/^.*$pattern.*$/m";
echo "pattern:" . $pattern;
if(preg_match_all($pattern, $contents, $matches)){
$str=implode("\n", $matches[0]);
$str = substr( $str, ( $pos = strpos( $str, ':' ) ) === false ? 0 : $pos + 1 );
$$outputvar = $str;
}
else {
$$outputvar = "99999";
}
}
不确定您要用 $outputvar
和 $$outputvar
做什么,但不要使用它们。 return
东西。另外,需要传入$contents
:
function getprice($keyword, $contents) {
$pattern = preg_quote($keyword, '/');
$pattern = "/^.*$pattern.*$/m";
if(preg_match_all($pattern, $contents, $matches)){
$str = implode("\n", $matches[0]);
$str = substr( $str, ( $pos = strpos( $str, ':' ) ) === false ? 0 : $pos + 1 );
return $str;
}
else {
return "99999";
}
}
然后使用:
$outputvar = getprice($some_keyword, $some_contents);
这只解决函数的使用问题,而不是您的正则表达式或解析的数据,因为您还没有发布任何测试用例。
有一组代码我已经使用了一段时间,用于在文件中查找字符串。但是当我将它放入一个函数中时,我没有得到结果,我认为它是 preg_match_all
不起作用。我不知道如何解决这个问题。
这是我的代码(copy/pasted 来自教程):
function getprice($keyword, $outputvar) {
$pattern = preg_quote($keyword, '/');
$pattern = "/^.*$pattern.*$/m";
echo "pattern:" . $pattern;
if(preg_match_all($pattern, $contents, $matches)){
$str=implode("\n", $matches[0]);
$str = substr( $str, ( $pos = strpos( $str, ':' ) ) === false ? 0 : $pos + 1 );
$$outputvar = $str;
}
else {
$$outputvar = "99999";
}
}
不确定您要用 $outputvar
和 $$outputvar
做什么,但不要使用它们。 return
东西。另外,需要传入$contents
:
function getprice($keyword, $contents) {
$pattern = preg_quote($keyword, '/');
$pattern = "/^.*$pattern.*$/m";
if(preg_match_all($pattern, $contents, $matches)){
$str = implode("\n", $matches[0]);
$str = substr( $str, ( $pos = strpos( $str, ':' ) ) === false ? 0 : $pos + 1 );
return $str;
}
else {
return "99999";
}
}
然后使用:
$outputvar = getprice($some_keyword, $some_contents);
这只解决函数的使用问题,而不是您的正则表达式或解析的数据,因为您还没有发布任何测试用例。