オフセット、ここに私のコードは次のとおりです。お知らせを返しするpreg_match:不定私はトレントPHPクローラを作ってるんだと私は問題を抱えている
// ... the cURL codes (they're working) ...
// Contents of the Page
$contents = curl_exec($crawler->curl);
// Find the Title
$pattern = "/<title>(.*?)<\/title>/s";
preg_match($pattern, $contents, $titlematches);
echo "Title - ".$titlematches[1]."<br/>";
// Find the Category
$pattern = "/Тип<\/td><td(?>[^>]+)>((?>[^<]+))<\/td>/s";
preg_match($pattern, $contents, $categorymatches);
echo "Category - ".$categorymatches[1]."<br/>";
HTMLページ(「Типは」カテゴリーと「Филмиは」作品を意味意味):
は、<title>The Matrix</title>
<!--Some Codes Here--!>
<tr><td>Тип</td><td valign="top" align=left>Филми</td></tr>
<!--Some Codes Here--!>
結果:
Title - The Matrix
Notice: Undefined offset: 1 in /var/www/spider.php on line 117
なぜそれが..ですタイトルではなく、カテゴリを示すのか? 私は$categorymatches[0]
、$categorymatches[2]
、$categorymatches[3]
を幸運にも反響させようとしました。
これは 'contents'は' categorymatches'のための一致を作成しないことを意味します。また、 ' - !'ではなく ' - >'でコメントが閉じられます。 ' –
' $ contents'は正しいHTMLデータを保持しません。 'curl_exec()'の直後にそれをエコーし、何が現れているのかを見てください。あなたが提供したHTMLを使ってローカルで試してみましたが、うまくいきました。 – entropid