PHP:使用某些库中的方法而不是URL的多卷曲?

时间:2013-04-17 07:23:32

标签: php multithreading curl instagram

这可能是一个愚蠢的问题,但我只是想知道这是否可能,或者我是否应该做其他事情......

使用多卷曲时,会使用网址吗?

// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();

// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

etc..

根据多卷曲document ...

那么,如果我有一些方法(我认为那就是你所说的那个)我正在使用library

$tags = $instagram->searchTags( 'tag' );

现在那就是搜索单词tag的库。但是,如果我希望能够进行多次搜索,

$tags1 = $instagram->searchTags( 'tag' );
$tags2 = $instagram->searchTags( 'tagme' );

如何将其实现为多卷曲?是否只是使用$tags1tags2替换网址?

2 个答案:

答案 0 :(得分:0)

这不是你的课,不明白为什么你需要那个。

function fetchHTML($website) {
  if(function_exists('curl_init')) {
    $ch = curl_init($website);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    $content = curl_exec($ch);
    curl_close($ch);
  } else {
    $content = file_get_contents($website)
  }
  return $content;
}

$dom = new DOMDocument();
$dom->loadHTML(fetchHTML("http://example1.com"));
$tag1 = $dom->getElementsByTagName('tagname');

$dom->loadHTML(fetchHTML("http://example2.com"));
$tag2 = $dom->getElementsByTagName('tagname');

/* Will give you a DOM object list with your first tagname */
print_r($tag1);

/* Will give you a DOM object list with your second tagname */
print_r($tag2);

答案 1 :(得分:0)

我已经研究过那个PHP库,发现Instagram类的每个实例只使用一个cURL处理程序,这导致你不能异步发送多个请求。

您可以阅读本文about connection Sharing with CURL in PHP以了解修改Instagram库的CurlClient类的想法。这里的主要思想是保留一个静态类成员,该成员持有来自curl_multi_init()的处理程序,并在需要时为其添加每个新的cURL单处理程序。