Читать по внешним ссылкам в PHP

Я знаю, как это сделать на Ruby, но хочу сделать это на PHP. Захватите страницу и сможете разобрать материал из нее.


person Josh K    schedule 02.11.2009    source источник


Ответы (4)


Взгляните на cURL. Знание о cURL и о том, как его использовать, поможет во многих отношениях, поскольку это не относится к PHP. Однако, если вы хотите что-то конкретное, вы можете использовать file_get_contents, что является рекомендуемым способом в PHP для получения содержимого. файла в строку.

person Bartek    schedule 02.11.2009

$file = file_get_contents("http://google.com/");

Как его анализировать, зависит от того, что вы пытаетесь сделать, но я бы порекомендовал одну из библиотек XML для PHP.

person Matthew Scharley    schedule 02.11.2009
comment
Это будет работать, только если для параметра allow_url_fopen установлено значение true в вашем файле php.ini. В противном случае вам придется изменить настройку (или, если у вас нет доступа к ней, тогда cURL — ваш единственный другой вариант). - person BraedenP; 02.11.2009

Вы можете использовать fopen в режиме чтения: fopen($url, 'r'); или проще file_get_contents($url);. Вы также можете использовать readfile(), но file_get_contents() потенциально более эффективен и поэтому рекомендуется.

Примечание: они зависят от конфигурации (см. связанную страницу руководства), но будут работать в большинстве настроек.

Для синтаксического анализа в PHP по умолчанию включена функция simplexml.

$xmlObject = simplexml_load_string($string);
// If the string was valid, you now have a fully functional xml object.

echo $xmlObject->username;
person Benji XVI    schedule 02.11.2009
comment
Спасибо за бит simplexml, это будет полезно. - person Josh K; 02.11.2009

Забавно, у меня был противоположный вопрос, когда я начал разработку рельсов

person Tyler Gillies    schedule 02.11.2009
comment
Да, я понял это, когда занимался автоматическим поиском в Google (googleplainly.com). Прошел год, а я все еще не все связал, чтобы автоматически добавлять результаты в базу данных. Но рубиновая добыча работает нормально. - person Josh K; 02.11.2009