PHP_PHP チュートリアルで記事コレクションを実装する方法
データ収集のほとんどは正規表現を使用します。ここで話しているのは、一般的にはローカルマシン上で実行される収集の実装方法です。リソースを大量に消費するだけでなく、file_get_contents($urls)file($url) などのリモート クロール機能もサポートする必要があるため、このスペースに配置するのは賢明ではありません。
1.記事一覧ページの自動切り替えと記事パスの取得2. 取得: タイトル、コンテンツ
3. 保管
4. 質問
1.記事一覧ページの自動切り替えと記事パスの取得
a. リストページの自動切り替えは通常、動的ページに依存します。
http://www.phpfirst.com/foru... d=1&page=$i
$i++ などの $i の自動増加または範囲を使用して、後で実装できます。
penzi が示したものと同じことを、ページからページへとコード内で制御することもできます。
b. 記事パスのポイントを取得するには、次の 2 つの方法があります。1) 上記の記事一覧ページへのリンクをすべて取得するために、通常のルールを入力する必要はありません
ただし、接続をフィルタリングして処理するのが最善です。重複した接続を判断し、1 つだけを残し、相対パスを処理して、それらを絶対パスに変換します。たとえば、../ や ./ などです。
以下は私が書いためちゃくちゃな実装関数です:
PHP:
------------------------------------------------- - ---------------------------------
//$e=clinchgeturl("http://phpfirst.com/forumdisplay.php?fid=1");
//var_dump($e);
関数 clinchgeturl($url)
{
//$url="http://127.0.0.1/1.htm";
//$rootpath="http://fsrootpathfsfsf/yyyyyy/";
//var_dump($rrr);
if(エレギ((.)*[.](.)*,$url)){
$roopath=split("/",$url);
$rootpath="http://".$roopath[2]."/";
$nnn=count($roopath)-1;for($yu=3;$yu
// var_dump($rootpath) // http: ,,127.0.0.1,xnml,index.php
}
else{$rootpath=$url; //var_dump($rootpath);
}
if(isset($url)){
echo "$url には次のリンクがあります:
";$fcontents = file($url);
while(list(,$line)=each($fcontents)){
while(eregi((href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-]+[?]?[^"]*" ?),$line,$regs)){
//$regs[1] = eregi_replace((href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-]+)( "?),"2",$regs[1]);
$regs[1] = eregi_replace((href[[:space:]]*=[[:space:]]*["]?)([[:alnum:]:@/._-]+[? ]?[^"]*)(.*)[^"/]*(["]?),"2",$regs[1]);
if(!エレギ(^http://,$regs[1])){
if(エレギ(^..,$regs[1])){
// $roopath=eregi_replace((http://)?([[:alnum:]:@/._-]+)[[:alnum:]+](.*)[[:alnum:]+ ],"http://2",$url);
$roopath=split("/",$rootpath);
$rootpath="http://".$roopath[2]."/";
//echo "これは基本です: "." ";
$nnn=count($roopath)-1;for($yu=3;$yu
//var_dump($rootpath);
if(エレギ(^..[/[:alnum:]]],$regs[1])){
//echo "これは ../directory/: "." ";
//$regs[1]="../xx/xxxxxx.xx";
// $rr=split("/",$regs[1]);
//for($oooi=1;$oooi
$rrr=$regs[1];
// {$rrr.="/".$rr[$oooi];
$rrr = eregi_replace("^[.][.][/]",,$rrr);
$regs[1]=$rootpath.$rrr;}
}その他{
if(eregi(^[[:alnum:]],$regs[1])){ $regs[1]=$rootpath.$regs[1] }
;
else{ $regs[1] = eregi_replace("^[/]",,$regs[1]); $regs[1]=$rootpath.$regs[1];}
}
$line = $regs[2];
if(eregi((.)*[.](htm|shtm|html|asp|aspx|php|jsp|cgi)(.)*,$regs[1])){
$out[0][]=$regs[1] }
;}
}
}for ($ouou=0;$ouou
{
if($out[0][$ouou]==$out[0][$ouou+1]){
$sameurlsum=1;
//echo "sameurlsum=1:";
for($sameurl=1;$sameurl
if($out[0][$ouou+$sameurl]==$out[0][$ouou+$sameurl+1]){$sameurlsum++;}
else{ブレイク;}
}
for($p=$ouou;$p
{ $out[0][$p]=$out[0][$p+$sameurlsum];}
}
}
$i=0;
while($out[0][++$i]) {
// $root.$out[0][$i] をエコーします。」 ";
$outed[0][$i]=$out[0][$i];
}
unset($out);
$out=$outed を返します;
}
?>
上記のものはゼンドのみ可能です。そうしないと都市の外観を妨げます: (
一意の接続をすべて取得したら、配列に配置します
2) 定期的なルールを記入する必要があります
必要な記事リンクを正確に取得したい場合は、この方法を使用してください
Ketle のアイデアに従ってください
使用する
PHP:
------------------------------------------------- - ---------------------------------
関数cut($file,$from,$end){
$message=explode($from,$file);
$message=explode($end,$message[1]);
$message[0] を返す;
}
$fromはリストの前のHTMLコードです
$endはリストの背後にあるHTMLコードです
上記のパラメータはフォームから送信できます。
リストページのリストではない部分を削除し、残りは必要な接続です。
以下の通常のルールを使用して取得します:
PHP:
------------------------------------------------- - ---------------------------------
preg_match("/^(http://)?(.*)/i",
$url, $matches);
$matches[2]を返す;
2. 取得: タイトル、コンテンツ
aまず、取得した記事パスを使って対象パスを読み込みます
以下の機能が利用できます。
PHP:------------------------------------------------- - ---------------------------------
関数getcontent($url) {
if($handle = fopen ($url, "rb")){
$contents = "";
する{
$data = fread($handle, 2048);
if (strlen($data) == 0) {
休憩;
}
$contents .= $data;
} while(true);
fclose ($handle);
}
その他
exit("....");
$contents を返す;
}
または直接
PHP:
------------------------------------------------- - ---------------------------------
file_get_contents($urls);
後者の方が便利ですが、上記と比較すると欠点が見えてきます
b、次はタイトルを取得します:
通常、これは次の実装に使用されます:
PHP:
------------------------------------------------- - ---------------------------------
preg_match("||",$allcontent,$title);
中のパーツはフォーム送信で入手可能です
一連のカット機能も使えます
例えば、上記の関数cut($file,$from,$end)、特定の文字列の切り取りは文字処理関数cutによって実現できますが、「コンテンツの取得」については後で詳しく説明します。
c、コンテンツを取得します
コンテンツを取得するという考え方はタイトルを取得するのと同じですが、コンテンツはそれほど単純ではないため、状況はより複雑になります。
1) コンテンツの近くにある二重引用符、スペース、改行などの特徴的な文字列は大きな障害です
二重引用符は、addslashes() で処理できる " に変更する必要があります
改行記号を削除したい場合は、
を渡すことができます
PHP:------------------------------------------------- - ---------------------------------
$a=ereg_replace(" "、、$a);
$a=ereg_replace("", , $a);
削除します
2) アイデア 2、コンテンツを抽出するために多くのカット関連関数を使用するには、多くの練習とデバッグが必要です。これに取り組んでいますが、何の進歩もありません~~~~~~~~
。
3. 保管a. データベースが挿入できることを確認してください。
たとえば、私のものは次のように直接挿入できます:
PHP:
------------------------------------------------- - ---------------------------------
$sql="$articles VALUES (, $title, , $article,, , クリンチ, from, キーワード, 1, $column id, $time, 1); に挿入します。 ";
その中には
PHP:
------------------------------------------------- - ---------------------------------
(、
自動的に昇順になります
http://www.bkjia.com/PHPjc/486262.html

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7
