Итак, я работаю над PHP-скриптом, и часть его должна быть в состоянии запросить веб-сайт, а затем получить от него текст.
Во-первых, мне нужно иметь возможность запрашивать определенный URL-адрес веб-сайта, после чего мне нужно получить текст из текста с этого сайта после запроса и уметь вернуть этот текст из функции.
Как я могу запросить веб-сайт и получить от него текст?
Самый простой способ:
file_get_contents ()
Это даст вам источник веб-страницы.
Вы, вероятно, хотите что-то еще более полное, так что загляните в cURL , для лучшей обработки ошибок и настройки user-agent, а что нет.
Оттуда, если вы хотите только текст, вам придется разбирать страницу. Для этого см.: Как вы анализируете и обрабатываете HTML / XML в PHP?
Я бы сделал поиск dom, взгляните на 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']");
Вы можете использовать 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);
Если у вас установлен Curl, используйте его. В противном случае:
$website = file_get_contents('http://google.com');
Затем вам нужно выполнить поиск по строке для текста, который вы хотите. Как вы это делаете, это зависит от веб-сайта и текста, который вы пытаетесь прочитать.
вам нужно использовать CURL. Вы можете получить некоторые образцы здесь
Если вы хотите большего контроля, используйте cURL. В противном случае: file_get_contents ..
$url = "http://www.example.com/test.php"; // Site URL. $site = file_get_contents($url); // Gets site response.
Можно ли это сделать, получив весь контент с веб-страницы, используя уже перечисленные выше методы, а затем с помощью регулярного выражения удалить все символы между открытыми и закрытыми скобками?
Страница, которая выглядит так:
<html><style> h1 { font-style:... }</style><h1>stuff in here</h1></html>
Тогда это будет после regex :
h1 { font-style:... }stuff in here
И поскольку мы хотим удалить весь код между различными тегами, такими как тег [style], мы могли бы сначала использовать regex для удаления всех символов между [style и / style], чтобы мы просто остались с:
stuff in here
Будет ли это тогда работать? Пожалуйста, ответьте, если вы думаете, что это или если вы предвидите ошибки, поскольку я хотел бы создать инструмент с этим разбором.