Как скачать веб-страницу в php - PullRequest
9 голосов
/ 17 июня 2010

Мне было интересно, как я могу загрузить веб-страницу в php для разбора?

Ответы [ 5 ]

15 голосов
/ 17 июня 2010

Вы можете использовать что-то вроде этого

$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
11 голосов
/ 17 июня 2010

Поскольку вы, вероятно, захотите проанализировать страницу с помощью DOM , вы можете загрузить страницу напрямую с помощью:

$dom = new DOMDocument;
$dom->load('http://www.example.com');

, когда в вашем PHP включен allow_url_fopen .

Но в основном для загрузки страницы может использоваться любая функция, которая поддерживает обертки потоков HTTP .

8 голосов
/ 17 июня 2010

С библиотекой curl .

6 голосов
/ 17 июня 2010

Просто добавить еще один вариант, потому что он есть, хотя не лучшим является просто использовать файл.Это еще один вариант, который я не вижу никого из перечисленных здесь.

$array = file("http://www.stackoverflow.com");

Хорошо, если вы хотите, чтобы он был в массиве строк, тогда как уже упоминавшийся file_get_contents поместит его в строку.

Еще одна вещь, которую вы можете сделать.

Затем вы можете циклически проходить по каждой строке, если это соответствует вашей цели:

foreach($array as $line){

    echo $line;
    // do other stuff here

}

Это иногда удобно, когда определенные API выдают простой текст или HTML с новой записью накаждая строка.

4 голосов
/ 17 июня 2010

Вы можете использовать этот код

$url = 'your url';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec ($ch);
curl_close ($ch);
// you can do something with $data like explode(); or a preg match regex to get the exact information you need
//$data = strip_tags($data);
echo $data;
...