ホームページ バックエンド開発 PHPチュートリアル プログラム PHP コレクション プログラム原理分析

プログラム PHP コレクション プログラム原理分析

Jul 29, 2016 am 08:42 AM
プログラム

数日間真剣に考えた結果、ようやくその背後にある理由がわかりました。ここに書いて専門家に訂正してもらいましょう。
コレクション プログラムのアイデアは非常にシンプルで、ページ (通常はリスト ページ) を開き、その中のすべてのリンクのアドレスを取得し、リンクを 1 つずつ開いて検索するだけです。見つかった場合は、データベースまたは他の処理に入れます。非常に簡単な例で説明しましょう。
まず、コレクション ページ (通常はリスト ページ) を決定します。ここでのターゲットは http://www.jb51.net/article/11/index.htm です。これはリストページであり、私たちの目的はこのリストページにあるすべての記事を収集することです。
最初のステップは、リストページを開いてそのコンテンツをプログラムに組み込むことです。一般に、fopen または file_get_contents の 2 つの関数が使用されます。ここでは例として fopen を使用します。どうやって開けるのですか? $source=fopen("http://www.jb51.net/article/11/index.htm",'r'); 実際、コンテンツはプログラムに組み込まれています。取得された $source はリソースであり、処理可能なテキストではないことに注意してください。そのため、今回は実際の編集可能なテキストを変数に読み取るために関数 fread が使用されます。例:
$c//www.jb51.net/article/7/all/545.1.htm)]。ソース コードを見ると、内部の記事のリンク アドレスはすべて次のようになっていることがわかります<div><a href="http://www.jb51.net/article/10/all/273.1.htm "> データベース接続コードを関数にカプセル化し、読み取る必要があるときに呼び出します。..</a>
正規表現を記述できます。 $count=preg_match_all("/<div class="in_arttitle"><ashref="(.+?)">(.+?)</a>/",$content,$art_list);
配列 $art_list[1][$s] には記事のリンクアドレスが含まれます。そして$art_list[2][$s]にはある記事のタイトルが入っています。この時点で、戦いは半分終わったと考えられます。
次に、for ループを使用して各リンクを順番にヒットし、タイトルと同じ方法でコンテンツを取得します。上記はオンラインで見つけたチュートリアルと似ていますが、この for ループに関してはオンライン チュートリアルはひどいもので、最初はループを助けるために js を使用していました。例を示します。
for($i=0;$i<20;4i++ {
真ん中はコンテンツを収集する部分ですが、これは省略されています。
その後ページが収集されました。別のページを収集する必要があります。しかし、fopen を使用してリンクを開くと機能しません。また、js では機能しません。このエコー「<META HTTP-EQUIV=REFRESH」を使用してください。C ID の後の数字は、これを実現するのに役立ちます。これが真のループの鍵です。
}
私の心は少し不快です。文章は少し汚いので、専門家にとっては大したことではないかもしれませんが、私のような初心者にとっては非常に役立ちます。
上記は、プログラムの内容を含む PHP コレクションのプログラム原理分析の紹介です。PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GoogleマップをiPhoneのデフォルト地図にする方法 GoogleマップをiPhoneのデフォルト地図にする方法 Apr 17, 2024 pm 07:34 PM

GoogleマップをiPhoneのデフォルト地図にする方法

修正: Windows タスク スケジューラでのオペレーター拒否要求エラー 修正: Windows タスク スケジューラでのオペレーター拒否要求エラー Aug 01, 2023 pm 08:43 PM

修正: Windows タスク スケジューラでのオペレーター拒否要求エラー

Windows 10および11で写真を顔ごとに並べ替える方法 Windows 10および11で写真を顔ごとに並べ替える方法 Aug 08, 2023 pm 10:41 PM

Windows 10および11で写真を顔ごとに並べ替える方法

特定のアプリに対してiPhoneの向きのロックを自動的に切り替える方法 特定のアプリに対してiPhoneの向きのロックを自動的に切り替える方法 Jun 06, 2023 am 08:22 AM

特定のアプリに対してiPhoneの向きのロックを自動的に切り替える方法

C++ で簡単なカウントダウン プログラムを作成するにはどうすればよいですか? C++ で簡単なカウントダウン プログラムを作成するにはどうすればよいですか? Nov 03, 2023 pm 01:39 PM

C++ で簡単なカウントダウン プログラムを作成するにはどうすればよいですか?

iPhoneに時計アプリがない:それを修正する方法 iPhoneに時計アプリがない:それを修正する方法 May 03, 2024 pm 09:19 PM

iPhoneに時計アプリがない:それを修正する方法

タスク スケジューラを使用して Web サイトを開く方法 タスク スケジューラを使用して Web サイトを開く方法 Oct 02, 2023 pm 11:13 PM

タスク スケジューラを使用して Web サイトを開く方法

Microsoft Store からアプリをすばやくアンインストールする方法 Microsoft Store からアプリをすばやくアンインストールする方法 Jul 12, 2023 pm 09:25 PM

Microsoft Store からアプリをすばやくアンインストールする方法

See all articles