0

私はこの機能を実行しようとしています:

   public function get_referring_domains(){
        $pattern='/<p>Referring<b>Class C subnets<\/b>: <b>(.*?)<\/b> <\/p>/';
        $result=  preg_match_all($pattern, $this->dom, $matches, PREG_SET_ORDER);
        return $result;
   }

取得したい結果は数値です。設定したパターンでわかるように、取得したい: ([0-9]+)...しかし、毎回 0 を取得します..なぜパターンがそうでないのですかマッチ?

これは私が一致させようとしているものです:

$pattern='/<p>Referring[\s]{1}<b>Class[\s]{1}C\ssubnets</b>:[\s]{1}<b>(.*?)</b>[\s]{1}</p>/i';

私はこれを得る:

preg_match_all() [function.preg-match-all]: 不明な修飾子 'b'

  <p>Referring <b>Class C subnets</b>: <b>4,613</b> </p>

HTMLページの一部です

アップデート。これに変更:

4

2 に答える 2

2

いくつかの空白がありません。次のようにする必要があります。

$pattern = '/<p>Referring <b>Class C subnets<\/b>: <b>(.*?)<\/b> <\/p>/';

また、正規表現の代わりに DOMDocument を使用することを強くお勧めします。

これを読んでください: PHP で HTML を解析および処理する方法は?

于 2012-06-07T13:45:58.977 に答える
0

参照の後にスペースが必要です

于 2012-06-07T13:46:08.963 に答える