2010-11-04 5 views
1

Le code est simple:Pourquoi parfois ne pouvez-vous pas obtenir du contenu en utilisant file_get_contents()?

<?php 
function getStringFromUrl($url){ 

    $fResource = fopen($url, 'r'); 
    do { 
     $data = fread($fResource, 8192); 

     if (strlen($data) == 0) { 
      break; 
      } 

      $contents .= $data; 
    } while(true); 

    fclose ($fResource); 

    $contents = mb_convert_encoding($contents,'utf-8','gbk'); 
    return $contents; 
} 


echo getStringFromUrl(urlencode('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=text&ip=119.97.23.59')); 

echo file_get_contents('http://blog.sina.com.cn/rss/1400122351.xml'); 

Parfois, je peux obtenir du contenu, parfois pas. Je ne peux pas comprendre pourquoi.

(EDIT: le msg d'erreur est: [function.fopen]: failed to open stream et [function.file-get-contents]: failed to open stream)

Bien sûr, le 2 Les URL ci-dessus sont disponibles. J'ai également défini le allow_url_fopen = On dans php.ini.

+0

vous avez essayé d'utiliser les fonctions curl au lieu de fopen/file_get_contents? –

Répondre

0

Tout d'abord, vous n'avez pas besoin d'urlencode full url! Seuls les paramètres GET:

echo file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?'.http_build_query(array(
    'format' => 'text', 
    'ip'  => '119.97.23.59' 
))); 

deuxième chose que vous devez partager avec est un message d'erreur (le cas échéant)

+0

Mon message d'erreur est joint, n'importe quelle aide? – DiveInto

Questions connexes