PHP Curl Extension не работает - PullRequest
0 голосов
/ 01 июня 2011

Я написал кусок, который правильно извлекал данные для меня, когда я пробовал это на моем локальном хосте.Также отлично работает на другом сервере.Но когда я перенес его на сервер, он показывает предупреждающее сообщение ...

Warning: (null)(): 4 is not a valid cURL handle resource in Unknown on line 0.

Может кто-нибудь подсказать, какие изменения я должен внести в .htacess и куда мне нужно идтив панели управления для внесения изменений ...

Вот фрагмент кода, который я использую.

function multiRequest($data, $options = array()) {

  // array of curl handles
  $curly = array();
  // data to be returned
  $result = array();

  // multi handle
  $mh = curl_multi_init();

  // loop through $data and create curl handles
  // then add them to the multi-handle
  foreach ($data as $id => $d) {
$curly[$id] = curl_init();

$url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;
curl_setopt($curly[$id], CURLOPT_URL,            $url);
curl_setopt($curly[$id], CURLOPT_HEADER,         0);
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);

// post?
if (is_array($d)) {
  if (!empty($d['post'])) {
    curl_setopt($curly[$id], CURLOPT_POST,       1);
    curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']);
  }
}

// extra options?
if (!empty($options)) {
  curl_setopt_array($curly[$id], $options);
}

curl_multi_add_handle($mh, $curly[$id]);
  }

  // execute the handles
  $running = null;
  do {
    curl_multi_exec($mh, $running);
  } while($running > 0);

  // get content and remove handles
  foreach($curly as $id => $c) {
    $result[$id] = curl_multi_getcontent($c);
    curl_multi_remove_handle($mh, $c);
  }

  // all done
  curl_multi_close($mh);

  return $result;
}

for ($i=0;$i<$length;$i++){
$no = $start + $i;
$data[$i]['url']  = 'http://abc.php';
$data[$i]['post'] = array();
$data[$i]['post']['regno']   = $no;
}

$r = multiRequest($data);

// the I have a code to use the $r (result array obtained)

Спасибо

1 Ответ

1 голос
/ 01 июня 2011

Это не значит, что расширение cURL не работает, скорее наоборот. CURL работает, однако, когда вы пытаетесь получить доступ к параметрам, которые вы передаете curl, вы не передаете обработчик ресурсов curl.

Например,

 $ch = curl_init(); 
 curl_setopt($ch, CURLOPT_URL, $url); 

Вам нужно использовать $ ch в качестве обработчика, что, я полагаю, вы не делаете?

В качестве примечания, если curl не установлен, вы получите исключение. Если вы не включили его в try catch / function Существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...