簡體   English   中英

哪個是fsockopen和curl之間更好的方法?

[英]Which is better approach between fsockopen and curl?

我正在為Automated Recurring Billing創建一個應用程序。
請讓我知道我應該選擇將哪個選項發送到服務器

  • fsockeopen
  • 卷曲

為什么一個比另一個好?

我建議使用PHP的流上下文和內置函數: http//us3.php.net/manual/en/book.stream.php 完整的HTTP / S功能,並與fopen / file_get_contents函數很好地集成。 您可以(例如)像這樣執行POST:

$chunk = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=".FACEBOOK_APP_ID."&client_secret=".FACEBOOK_SECRET."&grant_type=client_credentials");
if ($request_ids && $chunk) {
    $cookie = explode('=', $chunk);
    if (count($cookie) == 2) $cookie = $cookie[1];
    else $cookie = $cookie[0];

    // flush it
    foreach ($request_ids as $request_id) {
        $context = stream_context_create(array(
            'http' => array(
                'method'        => 'POST',
                'content'       => 'method=DELETE',
                'user_agent'    => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)",
                'max_redirects' => 0
            )
        ));
        @file_get_contents('https://graph.facebook.com/' . $request_id . '?access_token=' . $cookie, false, $context);
    }
}

此代碼登錄到Facebook,獲取應用程序登錄令牌,然后使用安全HTTP POST使用圖形API刪除大量對象。

如果你需要做更好的事情,你也可以。

$context = stream_context_create(array('http' => array(
   // set HTTP method
   'method'         => 'GET',
   'user_agent'     => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)",
   'max_redirects'  => 0
)));

// extract the cookies
$fp      = fopen(URL, "r", false, $context);
$meta    = stream_get_meta_data($fp);
$headers = $metadata['wrapper_data'];
fclose($fp);

將記錄將獲取URL返回的標頭。 無需外部庫。

都不是。 不是直接的,我的意思是。

在套接字的裸機上編寫和解析HTTP標頭是瘋狂的 ,我發現curl的API非常令人反感

看看PEAR的HTTP_Request2 ,它甚至可能安裝在你的機器上。 如果沒有,你可以將它與你的代碼捆綁在一起 - 它是BSD許可的。 它包裝任一插座或卷曲 ,並提供了一個相對理智HTTP接口。

必須處理http協議時使用Curl,當需要對非http服務器進行更通用的訪問時使用套接字。

由於可配置的選項,我建議你卷曲。 例如ssl

我現在正在研究這個問題並看到下面的頁面,其中提供了用於測試不同選項和生成速度輸出的代碼。 很有意思。

http://www.hashbangcode.com/blog/quickest-way-download-web-page-php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM