Bonjour,

Depuis le changement de serveur et le passage de php 5.3 à 5.4, je suis confronter à un soucis avec certains sites pour récupérer l'url effective (si redirection 301 par exemple)

Curl n'arrive pas lire l'url, j'ai toujours "(28): connect() timed out!"


Exemple : (bout de script fonctionnel si vous voulez tester..)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$url = "http://www.annuaire-info.com/";
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
 
   // Si l'URL est en HTTPS 
 
 
   if (preg_match('`^https://`i', $url)) 
   { 
   // Ne pas vérifier la validité du certificat SSL 
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
   }
 
   curl_setopt($ch, CURLOPT_VERBOSE, true);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
   curl_setopt($ch, CURLOPT_USERAGENT, 'One Shot');
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
 
   curl_exec($ch);
 
   $lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); 
   if ($lastUrl != ""){
 
 
   $url = "$lastUrl";
   }
   else{ 
   $url ="$url";
   }
 
  $curl_errno = curl_errno($ch);
        $curl_error = curl_error($ch);
        if ($curl_errno > 0) {
          echo "Error trouvé => ($curl_errno): $curl_error\n";
        } else { }
 
echo "$url";
Avez-vous une idée ?
D'avance merci
Yule