ホームページ  >  記事  >  バックエンド開発  >  phpカールのget、post、cookie

phpカールのget、post、cookie

WBOY
WBOYオリジナル
2016-06-23 14:34:211267ブラウズ

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/ ';
$ fields = array(
' lname '=>' justcoding '。、' age '=> '27'、
'email' => '1353777303@gmail.com',
'phone' = & gt; '1353777303'
);

//接続を開く
$ch =curl_init() ;
//set URL、POST変数の数、POSTデータ
curl_setopt($ch, CURLOPT_URL,$url) ;

curl_setopt($ ch, CURLOPT_POST,count($fields)); // 有効にすると、通常のPOSTリクエストが送信されます。フォーム送信と同様に、application/x-www-form-urlencoded と入力します。

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) ;


if($_GET['test'])

{

print_r($_GET);

}

if($_POST )
{
print_r($_POST);
}




3. PHP のcurl は Cookie を転送します

2 つの方法:

1 つは自動です:

curl_setopt($curlHandle, CURL) OPT_CO OKIEJAR、'クッキー。 txt '); //Save

curl_setopt($curlHandle, CURLOPT_COOKIEFILE, 'cookie.txt '); //Read

ただし、最初に 2 回アクセスして生成する必要があります。 Cookie を使用すると、リンクで Cookie を使用できます

例:


function get_curlcuconent2($filename,$referer)

{

$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);

$ch =curl_init();

$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);

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