Как получить текст с веб-сайта с помощью PHP?

Итак, я работаю над 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 

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