ホームページ >バックエンド開発 >PHPチュートリアル >phpカールのget、post、cookie
dreamhost に似たホスト サービス プロバイダーは、fopen の使用を示しています。 PHP のカールを使用すると、FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE および LDAP をサポートできます。 curl は、SSL 証明書、HTTP POST、HTTP PUT、FTP アップロード、Kerberos、HTTP ベースのアップロード、プロキシ、Cookie、ユーザー + パスワード証明書、ファイル転送リカバリ、http プロキシ チャネルをサポートしています。最も一般的に使用されるのは、http ベースの get および post です。方法。
1. HTTP 取得の実装
$ch =curl_init("http://www.domain.com/api/index.php?test=1") ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;データを取得して返す
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); // CURLOPT_RETURNTRANSFER が有効な場合、データを取得して返す
echo $output =curl_exec($ch) ;
/* ファイルに書き込みます*/
$fh = fopen ("out.html", 'w') ;
fwrite($fh, $output) ;
fclose($fh) ;
2. HTTP ポストの実装
$url = 'http: //www.domain.com/api/ ';curl_setopt($ch, CURLOPT_POSTFIELDS,$fields); // HTTP での「POST」操作。ファイルを転送したい場合は、@
で始まるファイル名が必要です
ob_start();
curl_exec($ch);
$result = ob_get_contents();
ob_end_clean();
echo $result;
//接続を閉じる
curl_close($ch) ;
{
print_r($_GET);}
if($_POST )
{
print_r($_POST);
}
2 つの方法:
1 つは自動です:
curl_setopt($curlHandle, CURL) OPT_CO OKIEJAR、'クッキー。 txt '); //Save
curl_setopt($curlHandle, CURLOPT_COOKIEFILE, 'cookie.txt '); //Read
ただし、最初に 2 回アクセスして生成する必要があります。 Cookie を使用すると、リンクで Cookie を使用できます
$cookie_jar = tempnam('./tmp','JSESSIONID');
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $filename);curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// ファイルの Cookie を設定します読み取りと送信パス
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
$filecontent=curl_exec($ch);
curl_close($ch);
$hostname ="www.domain .com" ;
//$referer="http://www.domain.com/";
curl_setopt($ch, CURLOPT_URL, $filename);
curl_setopt($ch, CURLOPT_REFERER, $referer); // 見てくださいここで、あなたは google から来たと言う事もできます
curl_setopt($ch, CURLOPT_USERAGENT, "www.domain.com");
//$request = "JSESSIONID=abc6szw15ozvZ_PU9b-8r"; //POST パラメータを設定します
//curl_setopt($ch, CURLOPT_POSTFIELDS, $request)
// もちろん、ここの値を変更してくださいこれは問題なく、泥棒の機能を実現できます。 $_SERVER['HTTP_USER_AGENT']
//スパイダーを自分で作成することもできます。その場合は、ここで CURLOPT_USERAGENT を偽装するだけです
//このプログラムを入れたい場合は、php を使用するとき - Linux では、特定の $_SERVER['HTTP_USER_AGENT'] も記述する必要があります。そうでない場合は、それを偽装することもできます
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ ch, CURLOPT_HEADER, false);// ページコンテンツを出力するかどうかを設定します
curl_setopt($ch, CURLOPT_GET, 1); // post,get past
$filecontent =curl_exec($ch);
preg_match_all(" /charset= (.+?)[NULL"']/is",$filecontent, $charsetarray);
if(strto lower($charsetarray[1][0])=="utf-8")
$filecontent= iconv( ' utf-8', 'gb18030//IGNORE' , $filecontent);
curl_close($ch);
return $filecontent;
}
?>
カスタマイズ:
$header[ ]= '受け入れる: image/gif、image/x-xbitmap、image/jpeg、image/pjpeg、application/x-shockwave-flash、text/html、* '. '/* ';
$header[]= ' Accept-Language: zh -cn ';
$header[]= 'ユーザー エージェント: Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) ';
$header[]= 'ホスト: '。 $ターゲットのホスト;
$header[]= '接続: キープアライブ';
$header[]= 'Cookie: '.$あなたのCOOKIE文字列;
curl_setopt($curlHandel,CURLOPT_HTTPHEADER ,$header);