Intereting Posts
mysqli_affected_rows () ожидает, что параметр 1 будет mysqli, данный объект Codeigniter: фатальная ошибка возникает при использовании функции base_url () для определения константы в файле "application / config / constants.php" # в URL-адресе, игнорирующемся в php 5.2 Как проверить последний цикл при использовании для цикла в php? Каков наилучший способ создать страницу входа в PHP? Как математически оценить строку типа «2-1» для создания «1»? Показать pdf blob-файл из базы данных Файл образа imagejpeg PHP не работает Операция внутри вида в ларавеле Загрузить файл с использованием конечной точки Guzzle 6 в API Не открывать соединение Sql для повторения множества запросов? Или закрыть каждый шаг? PHP и jQuery индикатор выполнения при разборе Проверьте, находится ли текущее время в два раза, с возможностью притирки дней Как вызвать фильтр «time_diff» в Twig Как вы получаете идентификатор респондента из опроса Monkey Survey?

Как я могу получить HTML-страницу в виде строки через PHP?

Я получаю некоторую информацию через PHP с веб-страницы, используя simple_php_dom и curl. Проблема в том, что страница не построена правильно, поэтому объект DOM содержит ошибочную информацию.

Как я могу получить HTML-файл в виде строки в var var, чтобы я мог выполнять регулярное выражение через него?

Curl не работает, поскольку игнорирует плохую часть.
simple_html_dom.php есть такая же проблема.
wget не работает, так как у меня нет разрешений для него на сервере.

file_get_contents – считывает весь файл в строку

 string file_get_contents ( string $filename [, int $flags= 0 [, resource $context [, int $offset= -1 [, int $maxlen= -1 ]]]] ) 

из руководства:

Эта функция похожа на файл (), за исключением того, что file_get_contents () возвращает файл в строке, начиная с указанного смещения до maxlen байтов. При ошибке file_get_contents () вернет FALSE.

file_get_contents () является предпочтительным способом чтения содержимого файла в строку. Он будет использовать методы сопоставления памяти, если их поддерживает ваша ОС для повышения производительности.

И он работает как с веб-страницами, так и с файлами. Вы можете захватить HTML, просто используя « http://whatever.com/page.html » как $ filename.

С помощью curl вы хотели бы убедиться, что вы устанавливаете параметр CURLOPT_RETURNTRANSFER, чтобы убедиться, что страница получена в виде строки, например:

  //return the transfer as a string curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

См. http://www.php.net/manual/en/function.curl-setopt.php

Я использовал cURL, чтобы получить файл в строку (simple_html_dom :: load_file только wraps file_get_contents), а затем используя метод simple_html_dom load (from string) для его анализа. Это работает для некоторых URL-адресов, но в этом случае он не работает, когда URL-адрес имеет строку параметров. Он извлекает URL-адрес так, как если бы он не имел строку параметров. Я установил агента с завитом, чтобы олицетворять браузер, но не кубики.

Извините, это не ответ на самом деле, но, возможно, использование curl будет работать для некоторых людей, для которых проблема fopen является проблемой.