ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルで URL アドレスを開くいくつかの方法のまとめ

PHP_PHP チュートリアルで URL アドレスを開くいくつかの方法のまとめ

WBOY
リリース: 2016-07-21 15:37:35
オリジナル
827 人が閲覧しました

1: file_get_contents を使用して get モードでコンテンツを取得します

コードをコピーします コードは次のとおりです:

$url='http://www.baidu.com/ ';
$html = file_get_r($http_response_header);
printhr();


コード例 2: fopen を使用して URL を開き、取得モードでコンテンツを取得します



コードをコピーします コードは次のとおりです:
< $fp = fopen($url? , 'r'); printhr(); while(!feof($fp)) {
$result .= fgets($fp, 1024); URL body: $result";
printhr();
fclose($fp);
?>



サンプルコード 3: file_get_contents 関数を使用して投稿モードで URL を取得します




コードをコピーします
コードは次のとおりです:
$data = array ('foo' => 'bar');
$data = http_build_query($data); http' => array ( 'method' => 'POST', 'header'=> "Content-type: application/x-www-form-urlencoded" . "Content-Length: " .strlen ($data) . ", 'content' => $data
) ,
$html = file_get_contents('http://localhost/e/admin/) test.html', false, $context);
echo $html ;



サンプルコード 4: fsockopen 関数を使用して、ヘッダーと本文を含む完全なデータを取得します




コードをコピーします

コードは次のとおりです:


function get_url ($ url,$cookie=false) {
$url = parse_url($url); [パス]."?".$url[クエリ];
ec("クエリ:".$クエリ); $fp = fsockopen( $url[ホスト], $url[ポート]?$url[ポート]: 80 , $errno, $errstr, 30); if (!$fp) {
return false;
} else { $request = "GET $query HTTP/1.1" .= "ホスト: $url [ホスト]"; $request .= "接続: 閉じる"; if($cookie) $request.= "Cookie: $cookien"; $request.="";
fwrite($fp,$request) ;
while(!@feof($fp)) {
$result .= @fgets($fp, 1024) ;
fclose($fp);
// URL の HTML 部分を削除し、ヘッダーを削除します
function GetUrlHTML($url,$cookie=false) {
$rowdata = get_url($ url,$cookie)
{
$body= stristr($) rowdata,"");
$body=substr($body,4,strlen($body));
return false; HTTP_Post($URL,$data,$cookie, $referrer="") {
// 指定された URL を解析します
$URL_Info=parse_url($URL);
// リファラーを構築します
if($referrer==""); // 指定されていない場合は、このスクリプトをリファラーとして使用します
$referrer="111";
// $data から文字列を作成します
foreach($data as $key=>$value)
$values[]="$key= ".urlencode($value);
$data_string=implode("&",$values);
// 必要なポートを調べます - 指定されていない場合は標準 (=80) を使用します
if(!isset($URL_Info[ "ポート"]))
$URL_Info["ポート"]=80;
// POSTリクエストを構築しています:
$request.="POST ".$URL_Info["path"] ." HTTP/1.1n"; $request.="ホスト: ".$URL_Info["host"]."n";
$request.="リファラー: $referern"; -urlencodedn";
$request.="Content-length: ".strlen($data_string)."n";
$request.="接続: 閉じる";
$request.="Cookie: $cookien";
$request.="n";
$request.=$data_string."n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"] );リクエスト);
while(!feof($fp)) {
$result .= fgets($fp, 1024)
fclose($fp); >


サンプルコード 6:curl ライブラリを使用する前に、php.ini をチェックして、curl 拡張機能がオンになっているかどうかを確認する必要がある場合があります

コードをコピー は次のとおりです:

$ch =curl_init();
curl_setopt ($ch, CURLOPT_URL, 'http://www.baidu.com/'); );
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents ($ch);
curl ライブラリについてウェブサイト http://curl.haxx.se/
curl は、URL 構文を使用したファイル転送ツールで、FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE および LDAP をサポートしています。 curl は、SSL 証明書、HTTP POST、HTTP PUT、FTP アップロード、Kerberos、HTTP ベースのアップロード、プロキシ、Cookie、ユーザー + パスワードの証明、ファイル転送の回復、http プロキシ チャネル、その他多くの便利なトリックをサポートしています



コードをコピー

コードは次のとおりです:


function printarr(array $arr) { echo "
行フィールド数: ".count($arr)."
"; foreach( $arr as $key=>$value) {
echo "$key=$value
"
}
}


7. 一部のホスティング サービス プロバイダーが変更されます。 php のallow_url_fopen オプションはオフになっています。つまり、file_get_contents を直接使用してリモート Web ページのコンテンツを取得することはできません。つまり、別の関数curlを使用できます。

file_get_contentsとcurlの同じ関数を別の方法で記述します
file_get_contents関数の使用例:



コードをコピーします

コードは次のとおりです:
< ?php
$file_contents = file_get_contents ('http://www.ccvita.com/');
echo $file_contents;
curl 関数の使用例:
コードは次のとおりです: < ?php ch =curl_init();
curl_setopt ($ch, CURLOPT_URL, 'http://www.ccvita.com');
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents =curl_exec($ch);


PHP 関数を使用する簡単に記述できる関数をサポートしています 次の関数

コードをコピーします コードは次のとおりです:
< ?php
function vita_get_url_content($url) {
if(function_exists('file_get_contents' )) {
$file_contents = file_get_contents($url);
} else {
$ch =curl_init();
curl_setopt ($ch, CURLOPT_RETURNTRANSFER); , 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $ タイムアウト);
$file_contents =
}
で実際、ホスティング サービスが file_get_contents とcurl の両方をオフにしている場合、上記の関数はまだ議論の余地があります。上記の関数でエラーが発生します。

http://www.bkjia.com/PHPjc/321918.html
www.bkjia.com
tru​​ehttp://www.bkjia.com/PHPjc/321918.html
技術記事

1: file_get_contents を使用して、次のようにコードをコピーします。 http_response_header); ec ...





ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート