2011-06-01 4 views
0

J'ai écrit un morceau qui cherchait des données pour moi correctement quand je l'essayais sur mon localhost. Cela fonctionne aussi bien sur un autre serveur. Mais quand je l'ai transféré au serveur il montre un message d'avertissement ...PHP Curl Extension ne fonctionne pas

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

Quelqu'un peut-il suggérer ce que les changements que je dois faire dans .htaccess et où je dois aller dans le panneau de commande pour effectuer les changements ...

Voici le morceau de code que j'utilise.

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) 

Merci

+0

besoin de code bro avant que nous puissions suggérer quelque chose –

+1

changer .htaccess/cpanel ne va pas aider cette erreur. C'est un bug dans votre code. vous écrasez probablement votre variable de poignée curl quelque part pour que ce ne soit plus une poignée de boucle. S'il vous plaît poster le code approprié. En l'état, cette question ne peut pas être correctement répondue. –

+0

Ceci est le code que j'utilise –

Répondre

1

Cela ne signifie pas que l'extension cURL ne fonctionne pas, bien au contraire. CURL fonctionne, cependant lorsque vous essayez d'accéder aux options que vous passez à curl, vous ne passez pas le gestionnaire de ressources curl.

Par exemple,

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

Vous devez utiliser le ch $ comme gestionnaire, que je suppose que vous ne faites pas? En remarque, si curl n'était pas installé, vous obtiendriez une exception. À moins que vous ne l'enveloppiez, essayez d'utiliser catch/function.

+0

J'essaie pour une requête multiple d'environ 1000 requêtes dans une page –