ホームページ  >  記事  >  バックエンド開発  >  php file_get_contents() リモート ファイルの content を読み取って収集する_PHP チュートリアル

php file_get_contents() リモート ファイルの content を読み取って収集する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:13:591033ブラウズ

ファイル全体を文字列に読み取る file_get_contents() 関数についての PHP マニュアルを見てみましょう。これは file() と同じです。違いは、file_get_contents() がファイルを文字列に読み取ることです。

file_get_contents() 関数は、ファイルの内容を文字列に読み取るための推奨される方法です

ヘルプマニュアルの上記の部分は、すべての内容を一度にメモリに読み込みます。これについては、次の例でも説明します。

_get_contents はリモート ファイルを文字列に読み取ることができます。 ファイルの行区切りは「rn」です

爆発は文字列を「rn」で区切ります

コードは次のとおりです$shadu_url = "http://localhost/demo.html"; $shadu_str = file_get_contents($shadu_url);リモートリクエストアドレス、返される処理結果情報は文字列で、各フィールドは「|」で区切られ、行は「rn」で区切られます
コードをコピー
$line_arr =explode("rn",$shadu_str);

それぞれ返される内容は、ID、名前、時刻、メールアドレスです


コンテンツ例

1|simaopig|2009-04-01|demo@simaopig.com
2|xiaoxiaozi|2009-04-02|demo@xiaoxiaozi.com
各フィールドを取得したい場合の操作は以下の通りです

コードは次のとおりです$shadu_url = "http://localhost/demo.html"; $shadu_str = file_get_contents($shadu_url);

結果は自分で確認してください(笑)。

例 2

HTMLページのコンテンツを収集する

コードをコピー
$line_arr =explode("rn",$shadu_str);
$result = array();
if(空($line_arr))
{
戻り配列();
}
foreach($line_arr as $line_str)
{
$record_arr =explode("|",$line_str);
if($record_arr[0] == "-1")
{
// ログ
続けます;
}
$data = array();
$data['id'] = $record_arr[0];
$data['name'] = $record_arr[1];
$data['time'] = $record_arr[2];
$data['email'] = $record_arr[3];
$result[] = $data;
}
var_dump($result);

コードは次のとおりです コードをコピー
//全国的には$REQUEST_URIにhtmlが含まれているかどうかが判定条件となります
if (!strpos($_SERVER["REQUEST_URI"],".html"))
{
$page="http://qq.ip138.com/weather/"; $html = file_get_contents($page,'r'); $pattern="/全国の主要都市および郡における当日および今後 5 日間の天気傾向予測のオンライン クエリ(.*?)
/し"; // 通常の試合間の html
preg_match($pattern,$html,$pg); エコー「」
; // 定期的にリモート アドレスをローカル アドレスに置き換えます
$p=preg_replace('//weather/(w+)/index.htm/', 'tq.php/$1.html', $pg[1]); エコー $p
}
//都道府県、$REQUEST_URIが含まれるかどうかが判定条件?
else if(!strpos($_SERVER["REQUEST_URI"],"?")){
//yoyo はデータを取得するためにセグメンテーションを使用することを推奨します。これは州名です
$province=explode("/",$_SERVER["REQUEST_URI"]); $province=explode(".",$province[count($province)-1]); $province=$province[0]
; //コメントアウトしたのは自分で書いた正規表現です、書き方が悪い気もしますが、効果は上記と同じです
。 //preg_match('/[^/]+[.(html)]$/',$_SERVER["REQUEST_URI"],$pro); //$province=preg_replace('/.html/','',$pro[0]); $page="http://qq.ip138.com/weather/".$province."/index.htm"; //悪意のある入力アドレスによるエラーを防ぐために、HTML データを取得する前にページを開いてみてください
if (!@fopen($page, "r")) {
die("申し訳ありませんが、アドレスが存在しません!ここをクリックして戻る"); 終了(0); }
$html = file_get_contents($page,'r'); $pattern="/5 日間の天気傾向予報(.*?)都市/市を入力してください
preg_match($pattern,$html,$pg); エコー「」
; //定期的な置換、都道府県、都市の取得
$p=preg_replace('//weather/(w+)/(w+).htm/', '$2.html?pro=$1', $pg[1]); エコー $p
}
他 {
//市、州を通過して取得
$pro=$_REQUEST['プロ']
$city=explode("/",$_SERVER["REQUEST_URI"]); $city=explode(".",$city[count($city)-1]); $city=$city[0]
//preg_match('/[^/]+[.(html)]+[?]/',$_SERVER["REQUEST_URI"],$cit); //$city=preg_replace('/.html?/','',$cit[0]); $page="http://qq.ip138.com/weather/".$pro."/".$city.".htm"; if (!@fopen($page, "r")) {
die("申し訳ありませんが、アドレスが存在しません!ここをクリックして戻る"); 終了(0); }
$html = file_get_contents($page,'r'); $pattern="/5 日間の天気傾向予報(.*?)都市/市を入力してください
preg_match($pattern,$html,$pg); エコー「」
; //実際のイメージアドレスを取得します
$p=preg_replace('//image//', 'http://qq.ip138.com/image/', $pg[1]); エコー $p
}
?>









http://www.bkjia.com/PHPjc/629097.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/629097.html

技術記事

ファイル全体を文字列に読み取る file_get_contents() 関数についての PHP マニュアルを見てみましょう。これは file() と同じです。違いは、file_get_contents() がファイルを文字列に読み取ることです。 ...




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