0

cURL を使用して、次の HTML コードから値updateXXXXを取得したいと思います。

<input type="hidden" id="_postupdate" name="_postupdate" value="updateXXXX" /><input type="hidden"(...)

私は試した

$regex = '/name="_postupdate" value="(.*?)" \/><input type="hidden"/s';
if ( preg_match($regex, $page, $list) )
echo $list[0];

しかし、成功しませんでした。何かアドバイス?:) ありがとう

4

2 に答える 2

0

次のように貪欲でないスイッチを使用します。

$regex = '/name="_postupdate" value="(.*)" \/><input type="hidden"/Us';

または、次のような引用符を除外します:

$regex = '/name="_postupdate" value="([^"]*)" \/><input type="hidden"/s';

一般的に、正規表現を使用して html を解析することは推奨されないことに同意します。この場合、照合するテキストは明確に定義された単純なものです。

正規表現は html パーサーよりも高速ですが、html コードに小さな変更があると失敗します。正規表現を使用している間はこの弱点を認識し、時間の経過とともにコードが進化する可能性がわずかでもある場合は使用を控える必要があります。

于 2013-08-28T21:10:02.127 に答える