2016-07-05 4 views
1

Я хочу, чтобы получить все содержимое страницы, что я их URLSCurl реакция отличается от веба-ответа

я написал следующий код PHP для содержания ПОЛУЧИТЬ из https://fonts.googleapis.com/css?family=Open+Sans

function curl_file_get_content($url){ 
    $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"; 
    $ch=curl_init(); 
    curl_setopt_array($ch, [ 
      CURLOPT_URL=>$url, 
      CURLOPT_USERAGENT=>$agent, 
      CURLOPT_RETURNTRANSFER=>1, 
      CURLOPT_TIMEOUT=>5, 
      CURLOPT_VERBOSE=>0, 
      CURLOPT_SSLVERSION=>3, 
      CURLOPT_SSL_VERIFYPEER=>0, 
      CURLOPT_SSL_VERIFYHOST=>0, 
     ]); 
    $page=curl_exec($ch); 
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    if($httpcode>=200 && $httpcode<300) return $page; 
    else return false; 
} 
if($content=curl_file_get_content("https://fonts.googleapis.com/css?family=Open+Sans")){ 
    echo $content; 
}else{ 
    echo "the Website is DOWN" ; 
} 

выхода следующий код

@font-face { 
    font-family: 'Open Sans'; 
    font-style: normal; 
    font-weight: 400; 
    src: url(https://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3fY6323mHUZFJMgTvxaG2iE.eot); 
} 

Если вы посмотрите на URL-адрес https://fonts.googleapis.com/css?family=Open+Sans, вы увидите содержание этой страницы, а вывод моего кода - deffrent, а мой вывод кода - часть этой страницы. е

но этот код корректно работать для содержания ПОЛУЧИТЬ из LOCALHOST файлов

Что проблема? Могу ли я получить эту страницу в полном объеме?

ответ

3

Это пользовательский агент, который вы использовали, когда я установил его в Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36, он, казалось, вернул полный контент, как он должен.

function fetch($url) { 
    $ch = curl_init(); 
    curl_setopt_array($ch, [ 
     CURLOPT_URL => $url, 
     CURLOPT_USERAGENT => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36', 
     CURLOPT_RETURNTRANSFER => 1, 
     CURLOPT_TIMEOUT => 5, 
     CURLOPT_VERBOSE => 0, 
     CURLOPT_SSLVERSION => 3, 
     CURLOPT_SSL_VERIFYPEER => 0, 
     CURLOPT_SSL_VERIFYHOST => 0, 
     ]); 
    $page = curl_exec($ch); 
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    return array($code, $page); 
} 

list ($code, response) = fetch('https://fonts.googleapis.com/css?family=Open%20Sans'); 

if ($code == 200) { 
    echo $response; 
} else { 
    echo 'Unable to fetch content: ' . $code; 
    echo 'Response: ' . $response; 
} 
+0

спасибо большое! - почему google не возвращает полное содержимое для «Mozilla/4.0 (совместимо; MSIE 5.01; Windows NT 5.0)» и возвращает полное содержимое для «Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/51.0.2704.103 Safari/537.36' Какая проблема с моим агентом? ты знаешь? –