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

文字列アンカーの開始があり、文字列の開始ではないため^です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 に答える