1

我正在尝试从transaction(123456)HTML中获取 ID

它似乎没有返回任何东西。

 $response = "</body> </html><script type='text/javascript'>transaction(123456);</script>";

 preg_match('/^transaction\((\d+)\)/', $response, $match);

 print_r($match);

if (is_numeric($match[1])) {
  echo "Your ID: " . $match[1];
}
4

3 回答 3

5

因为您有字符串 anchor 的开头^,而transaction(不是字符串的开头。删除它(或添加一个非贪婪匹配),它会工作(如这个演示所示):

preg_match('/transaction\((\d+)\)/', $response, $match);
于 2012-08-08T13:49:53.257 回答
1
preg_match('/^transaction\((\d+)\)/', $response, $match);

应该

preg_match('/transaction\((\d+)\)/', $response, $match);
于 2012-08-08T13:51:02.560 回答
1
$response = "</body> </html><script type='text/javascript'>transaction(123456);</script>";

preg_match('/transaction\((\d+)\)/', $response, $match);

print_r($match);

if (is_numeric($match[1])) {
  echo "Your ID: " . $match[1];
}

这是你想要的代码。原因是,您的模式以“^”开头,这个字符意味着,您希望“事务”出现在字符串“$response”的前面,但是有“...”

于 2012-08-08T13:51:19.677 回答