拆除清運工程價格便宜,樓層搬運快速清空
不論遠近免費估價,全年無休
廣告招牌工程拆除清運工程價格便宜,樓層搬運快速清空
不論遠近免費估價,全年無休

首頁  •  j2h 論壇 • 程式設計討論     • 

[php] curl 幕後以POST方式送出資料, 取得回應

房東:James
發表時間:2015-12-06


使用範例:

function my_curl($url,$post)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close ($ch);
return $result;
}

$postUrl='http://www.i2yes.com.tw';
$postBODY = array(
'name' => 'JACK',
'age' => '20',
'phone' => '0968123456',
'address' => '台灣'
);

$getBody = my_curl($postUrl,$postBODY);



  • 贊助網站       

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!

  • 1 樓住戶:jack
    發表時間:2015-12-07

    類似於dreamhost這類主機服務商,是顯示fopen的使用的。使用php的curl可以實現支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL證書、HTTP POST、HTTP PUT 、FTP 上傳,kerberos、基於HTT格式的上傳、代理、cookie、用戶+口令證明、文件傳送恢復、http代理通道就最常用的來說,是基於http的 get和post方法。

    一、http的get實現
    php代碼
    $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) ;

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

    $url = http://www.domain.com/api/ ;
    $fields = array(
    lname=>justcoding ,
    fname=>phplover ,
    title=>myapi,
    age=>27 ,
    email=>1353777303@gmail.com ,
    phone=>1353777303
    );
    //$post_data = implode(&,$fields);
    //open connection
    $ch = curl_init() ;
    //set the url, number of POST vars, POST data
    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;
    //close connection
    curl_close($ch) ;
    ?>

    Php代碼
    if($_GET[test])
    {
    print_r($_GET);
    }

    if($_POST)
    {
    print_r($_POST);
    }
    ?>
    if($_GET[test])
    {
    print_r($_GET);
    }
    if($_POST)
    {
    print_r($_POST);
    }
    ?>

    二、http的post實現
    Php代碼
    $url = http://www.domain.com/api/ ;
    $fields = array(
    lname=>justcoding ,
    fname=>phplover ,
    title=>myapi,
    age=>27 ,
    email=>1353777303@gmail.com ,
    phone=>1353777303
    );
    //$post_data = implode(&,$fields);
    //open connection
    $ch = curl_init() ;
    //set the url, number of POST vars, POST data
    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;
    //close connection
    curl_close($ch) ;
    ?>

    三. php的curl傳送cookie
    兩種方式:
    一種是自動:
    Php代碼
    curl_setopt($curlHandle, CURLOPT_COOKIEJAR, cookie.txt ); //保存
    curl_setopt($curlHandle, CURLOPT_COOKIEFILE, cookie.txt ); //讀取
    curl_setopt($curlHandle, CURLOPT_COOKIEJAR, cookie.txt ); //保存
    curl_setopt($curlHandle, CURLOPT_COOKIEFILE, cookie.txt ); //讀取
    ?>
    這樣COOKIE會自動跟上去.
    不過要分兩次,一是先訪問產生cookie,接著連結才能用cookie

    例子:Php代碼
    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);
    // 上面這句,當然你可以說你是baidu,改掉這裡的值就ok了,可以實現小偷的功能,$_SERVER[HTTP_USER_AGENT]
    //你也可以自己做個 spider 了,那麼就偽裝這裡的 CURLOPT_USERAGENT 吧
    //如果你要把這個程序放到linux上用php -q執行那也要寫出具體的$_SERVER[HTTP_USER_AGENT],偽造的也可以
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     

    2 樓住戶:jack
    發表時間:2015-12-07

    CULR的使用方法(POST)


    // 建立CURL連線
    $ch = curl_init();

    // 設定擷取的URL網址
    curl_setopt($ch, CURLOPT_URL, "http://localhost/SamplePath?SomeVar=test");

    //強制轉為UTF-8
    curl_setopt($ch,CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded; charset=utf-8"));

    //將curl_exec()獲取的訊息以文件流的形式返回,而不是直接輸出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

    //設定要傳的 變數A=值A & 變數B=值B (中間要用&符號串接)
    $PostData = "a=abc&b=def";

    //設定CURLOPT_POST 為 1或true,表示要用POST方式傳遞
    curl_setopt($ch, CURLOPT_POST, 1);
    //CURLOPT_POSTFIELDS 後面則是要傳接的POST資料。
    curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);

    // 執行
    $temp=curl_exec($ch);

    // 關閉CURL連線
    curl_close($ch)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // 建立CURL連線
    $ch = curl_init();

    // 設定擷取的URL網址
    curl_setopt($ch, CURLOPT_URL, "http://localhost/SamplePath?SomeVar=test");

    //強制轉為UTF-8
    curl_setopt($ch,CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded; charset=utf-8"));

    //將curl_exec()獲取的訊息以文件流的形式返回,而不是直接輸出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

    //設定要傳的 變數A=值A & 變數B=值B (中間要用&符號串接)
    $PostData = "a=abc&b=def";

    //設定CURLOPT_POST 為 1或true,表示要用POST方式傳遞
    curl_setopt($ch, CURLOPT_POST, 1);
    //CURLOPT_POSTFIELDS 後面則是要傳接的POST資料。
    curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);

    // 執行
    $temp=curl_exec($ch);

    // 關閉CURL連線
    curl_close($ch)
    以上參考:http://expect7.pixnet.net/blog/post/36428081-%5B%E7%A8%8B%E5%BC%8F%5D%5Bphp%5D-%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8php-curl%EF%BC%8C%E5%9F%BA%E7%A4%8E%E6%95%99%E5%AD%B8%E3%80%82

    另外要存取的網址如果是有SSL協定的,請加上這2個


    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);

    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
    1
    2
    3
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);

    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
    即可跳過驗證網站

    3 樓住戶:Easy-maintainable High Precisi
    發表時間:2021-12-02

    32 Amps Fuse Carrier Manufacturers
    Easy-maintainable High Precision CNC Milling Machining Parts

    4 樓住戶:Buy Discount Construction grad
    發表時間:2021-12-02

    Pp Grooved Filter Cartridge
    Buy Discount Construction grade Hydroxypropyl Methyl Cellulose

    5 樓住戶:Egg Size Sorting Machine
    發表時間:2021-12-02

    Quality High water retention hydroxypropyl methylcellulose
    Egg Size Sorting Machine

    6 樓住戶:Biodegradable Reusable Grocery
    發表時間:2021-12-02

    CAS NO.:129-09-9 Free Sample
    Biodegradable Reusable Grocery Carrier Laminated Tote Shopping Handbags

    7 樓住戶:China Cationic Blue X-GRRL
    發表時間:2021-12-02

    Gold Wheels
    China Cationic Blue X-GRRL

    8 樓住戶:Easy-maintainable Polyester Po
    發表時間:2021-12-02

    Incline Treadmill Workout
    Easy-maintainable Polyester Powder Coating Powder

    9 樓住戶:Cemented Carbide Nozzle
    發表時間:2021-12-02

    Quality Tabletop Decorative Metal Articles
    Cemented Carbide Nozzle

    10 樓住戶:Durable Metal Processing Aeros
    發表時間:2021-12-02

    China Graphite Mould for Glass Industry
    Durable Metal Processing Aerospace parts

    11 樓住戶:China Zinc oxide rubber grade
    發表時間:2021-12-02

    Automatic Mist Sprayer
    China Zinc oxide rubber grade 99.7% manufacturers

    12 樓住戶:Rubber grade zinc oxide specif
    發表時間:2021-12-07

    Industrial aluminum Profile
    Rubber grade zinc oxide specification Price List

    13 樓住戶:Fireproof Colorful Fiber Cemen
    發表時間:2021-12-07

    Large CSD400 16inch Ocean Gold Dredge Vessel Price List
    Fireproof Colorful Fiber Cement Board

    14 樓住戶:HPMC powder for gypsum Supplie
    發表時間:2021-12-07

    Ductile Cast Iron Pipe
    HPMC powder for gypsum Suppliers



     共 532 人回應  選擇頁數 【第1 頁】 【第2 頁】 【第3 頁】 【第4 頁】 【第5 頁】 【第6 頁】 【第7 頁】 【第8 頁】 【第9 頁】 【第10 頁】 【第11 頁】 【第12 頁】 【第13 頁】 【第14 頁】 【第15 頁】 【第16 頁】 【第17 頁】 【第18 頁】 

    姓名:
    佈告內容:
    其他選項: