1

私はcURLを使用して小さなWebサイトスクレーパーに取り組んでいます。

ヘッダーと記事のコンテンツを見つけるために preg_match を使用することにしました。

これは私のコードです:

preg_match('@<h2 class="title">(.*?)</h2>@s', $this->website, $this->title);
            
if(sizeof($this->title) > 1)
    $this->title = trim($this->title[1]); // rewrite first element of array to regular variable
    

私はそれを試していましたが、一致するものが1つある場合、0ではなくインデックス1で配列に返されることがわかりました。

編集された質問:なぜこれは 0 ではなく 1 なのですか? 私は何か間違ったことをしていますか?

私のサーバー: Apache/2.4.3 (Win32) PHP/5.4.7

4

1 に答える 1

4

preg_match のデフォルトの動作は、結果配列のインデックス 0 で一致した文字列全体を返し、その後の結果配列インデックスで一致した各サブパターンを返すことです。何も一致しなかった場合、結果の配列は空になります。何かが一致すると、一致した完全な文字列とサブパターンが取得されます。

于 2013-01-17T16:34:57.003 に答える