Как я могу получить текст с веб-сайта, используя PHP? - PullRequest
10 голосов
/ 18 июля 2011

Итак, я работаю над сценарием PHP, и часть его должна иметь возможность запрашивать веб-сайт, а затем получать от него текст.

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

Как мне запросить сайт и получить с него текст?

Ответы [ 7 ]

11 голосов
/ 18 июля 2011

Самый простой способ:

file_get_contents ()

Это даст вам источник веб-страницы.

Вы, вероятно, хотите что-то более полное, хотя, посмотрите в cURL , для лучшей обработки ошибок и настройки user-agent, а что нет.

Оттуда, если вы хотите только текст, вам придется проанализировать страницу. Для этого смотрите: Как вы анализируете и обрабатываете HTML / XML в PHP?

7 голосов
/ 18 июля 2011

Я бы сделал поиск в домах, взглянул бы на http://www.php.net/manual/es/domdocument.load.php Domxpath тоже может быть очень полезен: http://php.net/manual/en/class.domxpath.php

$doc = new DOMDocument;
$doc->load("http://mysite.com");
$xpath = new DOMXpath($doc);
$elements = $xpath->query("*/div[@id='yourTagIdHere']");
0 голосов
/ 07 августа 2015

Можно ли это сделать, получив весь контент с веб-страницы, используя методы, уже перечисленные выше, а затем с помощью regex до удалить все символы в открытых и закрытых скобках?

Страница, которая выглядит следующим образом:

<html><style> h1 { font-style:... }</style><h1>stuff in here</h1></html>

Стало бы таким после регулярного выражения :

h1 { font-style:... }stuff in here

И поскольку мы хотим удалить всекод между различными тегами, такими как тег [style], затем мы могли бы сначала использовать регулярное выражение для удаления всех символов между [style и / style], так что у нас осталось только:

stuff in here

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

0 голосов
/ 18 июля 2011

Если вы хотите больше контроля, используйте cURL. В противном случае: file_get_contents ..

$url  = "http://www.example.com/test.php";  // Site URL.
$site = file_get_contents($url);             // Gets site response.
0 голосов
/ 18 июля 2011

вам нужно использовать CURL. Вы можете получить образцы здесь

0 голосов
/ 18 июля 2011

Если у вас установлен Curl, используйте его.В противном случае:

$website = file_get_contents('http://google.com');

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

0 голосов
/ 18 июля 2011

Вы можете использовать file_get_contents или, если вам нужно немного больше контроля (например, для отправки запросов POST, для установки строки агента пользователя, ...), вы можете посмотреть на cURL .

file_get_contents Пример:

$content = file_get_contents('http://www.example.org');

Базовый cURL Пример:

$ch = curl_init('http://www.example.org');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3');

$content = curl_exec($ch);

curl_close($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...