PHPコレクションプログラムの原理分析_PHPチュートリアル

WBOY
リリース: 2016-07-13 17:34:54
オリジナル
584 人が閲覧しました

必要に迫られて、いつものように、インターネットでたくさんのチュートリアルを見つけてコピーしましたが、インターネット上のチュートリアルはどれも大したものではありませんでした。それらは本当に役に立ちました。数日間真剣に考えた結果、ようやくその背後にある理由がわかりました。ここに書いて専門家に訂正してもらいましょう。

コレクション プログラムのアイデアは非常に単純で、最初にページ (通常はリスト ページ) を開き、そこに含まれるすべてのリンクのアドレスを取得し、次にリンクを 1 つずつ開いて何を探すかということです。見つかった場合は、データベースまたは他の処理に入れます。非常に簡単な例で説明しましょう。

まず、コレクション ページ (通常はリスト ページ) を決定します。ここでのターゲットは http://www.BkJia.com/article/11/index.htm です。これはリストページであり、私たちの目的はこのリストページにあるすべての記事を収集することです。最初のステップは、リスト ページを開いてそのコンテンツをプログラムに組み込むことです。一般に、fopen または file_get_contents の 2 つの関数が使用されます。ここでは例として fopen を使用します。どうやって開けるのですか?非常に単純です: $source=fopen("[url=http://www.BkJia.com/article/11/index.htm",]http://www.BkJia.com/article/11/index.htm" ,r[/url]); 実際、取得した $source は処理可能なテキストではなく、リソースであるため、関数 fread を使用して変数に読み込まれます。実際に編集可能なテキストになります。例:

$content=fread($source,99999); 次の数字はバイト数を示します。大きい値を入力してください。 file_put_contents を使用して $content をテキスト ファイルに書き込みます。内部のコンテンツが実際には Web ページのソース コードであることがわかります。 Web ページのソース コードを取得した後、内部の記事リンク アドレスを分析する必要があります。ここでは正規表現を使用します (推奨される正規表現のチュートリアル (http://www.BkJia.com/article/7/all/545.1))。 html)]。ソース コードを見ると、内部の記事のリンク アドレスはすべて次のようになっていることがわかります

データベース接続コードを関数にカプセル化し、読み取る必要があるときに呼び出します。

正規表現を記述できるようになりました。 $count=preg_match_all("/

(.+?)/",$content,$art_list);

配列 $art_list[1][$s] には記事のリンクアドレスが含まれます。そして$art_list[2][$s]にはある記事のタイトルが入っています。この時点で、戦いは半分終わったと考えられます。


次に、for ループを使用して各リンクを順番にヒットし、タイトルと同じ方法でコンテンツを取得します。上記はオンラインで見つけたチュートリアルと似ていますが、この for ループに関してはオンライン チュートリアルはひどいもので、最初はループを助けるために js を使用していました。 、または使用された例を示します。これが最初に私がやったことです:
for($i=0;$i

真ん中はコンテンツ収集部分なので省略

1ページ集めたので、次のページも集めなければなりません
ただし、fopen を使用してリンクを開くと機能しません。リクエストが失敗したか何かで、js では機能しませんでした。最終的に、この echo ""; を使用する必要があることがわかりました。ここで、aa.php は私たちのものです。プログラムのファイル名と ID の後の番号は、ループを実装し、複数のページを収集するのに役立ちます。これが真のサイクルへの鍵です
}
私の頭は少し不快で、文章は少し乱雑なので、専門家から見ればこれは大したことではないかもしれませんが、私のような初心者にとっては非常に役立ちます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508428.html技術記事必要に迫られて、いつものように簡単な PHP コレクション プログラムを作成したいと思い、インターネット上で多数のチュートリアルを見つけてコピーしましたが、インターネット上にあるチュートリアルはどれも怪しいものでした。本当に...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート