ホームページ  >  記事  >  バックエンド開発  >  PHP で POST をシミュレートする手順

PHP で POST をシミュレートする手順

WBOY
WBOYオリジナル
2016-06-13 13:21:56838ブラウズ

PHP シミュレーション POST メソッド

PHP が JSP にデータをアクティブに POST する

どの方法が優れていますか?

例があるのが一番です、ありがとう

-----解決策--------- ------------
バックグラウンド シミュレーションは、最も一般的に使用されるcurlモジュールとほぼ同じです
------解決策---------

PHP コード

function post_url($url, $post = "", $host = "www.ydtuiguang.com", $referrer = 'http://www.ydtuiguang.com/', $proxy = -1){
    if(function_exists("curl_init")){
        $ch = @curl_init();
        @curl_setopt($ch, CURLOPT_URL, $url);
        if(!empty($proxy["アドレス"]))
            @curl_setopt($ch, CURLOPT_PROXY, strpos($proxy["アドレス"], "http") === 0 ? $proxy["アドレス"] : "http://".$proxy["アドレス"]) ;
        if(!empty($proxy["アカウント"]) && !empty($proxy["パスワード"]))
            @curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy["アカウント"].":".$proxy["パスワード"]);
        @curl_setopt($ch, CURLOPT_REFERER, $referrer);
        @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (互換性; MSIE 7.0; Windows NT 5.0)");
        @curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE_PATH);
        @curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILE_PATH);
        @curl_setopt($ch, CURLOPT_HEADER, 0);
        @curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        @curl_setopt($ch, CURLOPT_TIMEOUT, 1000);

        if (!empty($post)) {
            @curl_setopt($ch, CURLOPT_POST, 1);
            @curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        }

        $result = @curl_exec($ch);
        @curl_close($ch);
    }elseif(function_exists("fsockopen")){
        $httpheader = "POST ".$url." HTTP/1.1rn";
        $httpheader .= "受け入れる: */*rn";
        $httpheader .= "Accept-Language: zh-cnrn";
        $httpheader .= "リファラー: ".$referrer."rn";
        $httpheader .= "Content-Type: application/x-www-form-urlencodedrn";
        $httpheader .= "ユーザー エージェント: Mozilla/4.0 (互換性、MSIE 7.0、Windows NT 5.1)rn";
        $httpheader .= "ホスト: ".$host."rn";
        $httpheader .= "コンテンツの長さ: ".strlen($post)."rn";
        $httpheader .= "接続: 維持";
        $httpheader .= "rn";
        $httpheader .= $post;
        $fd = fsockopen($host, 80);
        fwrite($fd, $httpheader);
        $結果 = "";
        while(!feof($fd)){
            $result .= fread($fd, 8192);
        }
        fclose($fd);
    }elseif(function_existes('file_get_contents')){
        $httpheader = "POST ".$url." HTTP/1.1rn";
        $httpheader .= "受け入れる: */*rn";
        $httpheader .= "Accept-Language: zh-cnrn";
        $httpheader .= "リファラー: ".$referrer."rn";
        $httpheader .= "Content-Type: application/x-www-form-urlencodedrn";
        $httpheader .= "ユーザー エージェント: Mozilla/4.0 (互換性、MSIE 7.0、Windows NT 5.1)rn";
        $httpheader .= "ホスト: ".$host."rn";
        $httpheader .= "コンテンツの長さ: ".strlen($post)."rn";
        $httpheader .= "接続: 維持";
        
        $opts = 配列(
           'http'=>配列(
                'メソッド'=>"POST",
                'header'=>$httpheader、
                'コンテンツ'=>$post
           )
         );
        $context = stream_context_create($opts);
        $result = file_get_contents($url, 'r', $context);
    }
    $result を返します。
}
<br><font color="#e78608">------解決策---------</font><br>
話し合う

バックグラウンド シミュレーションは、最も一般的に使用されるcurl モジュールとほぼ同じです
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。