2011-01-11 7 views
6

Я хочу проанализировать некоторую информацию из html-страницы. В настоящее время я решить эту проблему следующим образом:Эквивалентная функция для file_get_contents()?

header("Content-type: text/plain");  
$this->pageSource = file_get_contents ($this->page); 
header("Content-type: text/html"); 

$this->page является URL сайта. Это прекрасно работает на XAMPP, но когда я загрузить мой сценарий на моем сервере, я получаю следующее сообщение об ошибке:

Внимание: file_get_contents() [function.file-получить содержание]: HTTP: // обертка отключен в конфигурации сервера allow_url_fopen = 0

Очевидно, что мне не разрешено выполнять эту функцию на моем веб-сервере.

Так есть ли эквивалентная функция для решения моей проблемы?

+3

Вы попробовали локон? –

+0

Вы можете использовать эту функцию, но не с URL-адресами, только с локальными файлами, об этом сообщает сообщение об ошибке. – Tobias

+1

'file_get_contents()' может использоваться для открытия URL-адресов, но он не может обрабатывать тайм-ауты или работать за прокси-сервером. –

ответ

19

На самом деле функция file_get_contents не отключена,
но allow_url_fopen отключен

вы можете заменить его curl

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $this->page); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$this->pageSource = curl_exec($ch); 
curl_close($ch); 

Однако, если сервер блок исходящий трафик, curl не помогает тоже

+0

Могу ли я использовать CUrl для получения контента, а затем манипулировать им с помощью Simple Html Dom Parser? – Silentbang

+0

Да, используйте вместе с функцией 'simplexml_load_string' – ajreal

0

Использовать curl и для чего вам нужно изменить заголовок на обычный текст для извлечения данных? Это не обязательно, если вы извлекаете данные.

0

если у вас есть завиток, используйте его для этого.


      $urlx = 'http://yoururl'; 

      $data="from=$from&to=$to&body=".urlencode($body)."&url=$url"; 
//set post parameters 
      $process = curl_init($urlx); 
//init curl connection 
      curl_setopt($process, CURLOPT_HEADER, 0); 

      curl_setopt($process, CURLOPT_POSTFIELDS, $data); 

      curl_setopt($process, CURLOPT_POST, 1); 

      curl_setopt($process, CURLOPT_RETURNTRANSFER,1); 

      curl_setopt($process,CURLOPT_CONNECTTIMEOUT,1); 

      $resp = curl_exec($process); 
//your content 
      curl_close($process); 

 
Смежные вопросы