Я хочу получить HTML-код ссылки (веб-страницы) в PHP. Например, если ссылка
то мне нужен HTML-код обслуживаемой страницы. Я хочу получить этот HTML-код и сохранить его в переменной PHP.
Как я могу это сделать?
Я хочу получить HTML-код ссылки (веб-страницы) в PHP. Например, если ссылка
то мне нужен HTML-код обслуживаемой страницы. Я хочу получить этот HTML-код и сохранить его в переменной PHP.
Как я могу это сделать?
Ответы:
Если ваш PHP-сервер позволяет использовать обертки url fopen, то самый простой способ:
$html = file_get_contents('/programming/ask');
Если вам нужно больше контроля, вам следует взглянуть на функции cURL :
$c = curl_init('/programming/ask'); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); //curl_setopt(... other options you want...) $html = curl_exec($c); if (curl_error($c)) die(curl_error($c)); // Get the status code $status = curl_getinfo($c, CURLINFO_HTTP_CODE); curl_close($c);
источник
Также, если вы хотите каким-то образом манипулировать полученной страницей, вы можете попробовать какой-нибудь парсер php DOM. Я считаю, что PHP Simple HTML DOM Parser очень прост в использовании.
источник
Вы можете ознакомиться с библиотеками YQL на Yahoo: http://developer.yahoo.com/yql
Поставленная задача проста как
select * from html where url = 'http://stackoverflow.com/questions/ask'
Вы можете попробовать это в консоли по адресу: http://developer.yahoo.com/yql/console (требуется логин)
Также посмотрите скринкаст Криса Хейлмана, чтобы узнать, что еще можно сделать: http://developer.yahoo.net/blogs/theater/archives/2009/04/screencast_collating_distributed_information.html
источник
Простой способ: используйте
file_get_contents()
:$page = file_get_contents('http://stackoverflow.com/questions/ask');
Пожалуйста , обратите внимание , что
allow_url_fopen
должно бытьtrue
в вас ,php.ini
чтобы иметь возможность использовать URL-Aware FOPEN оберток.Более продвинутый способ: если вы не можете изменить конфигурацию PHP,
allow_url_fopen
используетсяfalse
по умолчанию, а если установлен ext / curl, используйтеcURL
библиотеку для подключения к нужной странице.источник
вы можете использовать file_get_contents, если хотите сохранить источник как переменную, однако curl - лучший практический вариант.
$url = file_get_contents('http://example.com'); echo $url;
это решение отобразит веб-страницу на вашем сайте. Однако завиток - лучший вариант.
источник
посмотрите на эту функцию:
http://ru.php.net/manual/en/function.file-get-contents.php
источник
include_once('simple_html_dom.php'); $url="http://stackoverflow.com/questions/ask"; $html = file_get_html($url);
Вы можете получить весь HTML-код в виде массива (проанализированной формы), используя этот код. Загрузите файл 'simple_html_dom.php' здесь http://sourceforge.net/projects/simplehtmldom/files/simple_html_dom.php/download
источник
Вот два разных простых способа получить контент с URL :
1) первый способ
Включите Allow_url_include с вашего хостинга (php.ini или где-то еще)
<?php $variableee = readfile("http://example.com/"); echo $variableee; ?>
или
2) второй способ
Включите php_curl, php_imap и php_openssl
<?php // you can add anoother curl options too // see here - http://php.net/manual/en/function.curl-setopt.php function get_dataa($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); curl_close($ch); return $data; } $variableee = get_dataa('http://example.com'); echo $variableee; ?>
источник
вы также можете использовать метод DomDocument для получения отдельной переменной уровня тега HTML
$homepage = file_get_contents('https://www.example.com/'); $doc = new DOMDocument; $doc->loadHTML($homepage); $titles = $doc->getElementsByTagName('h3'); echo $titles->item(0)->nodeValue;
источник
$output = file("http://www.example.com");
не работает , пока не включено:allow_url_fopen, allow_url_include,
иfile_uploads
вphp.ini
течение PHP7источник
Я пробовал этот код, и он у меня работает.
$html = file_get_contents('www.google.com'); $myVar = htmlspecialchars($html, ENT_QUOTES); echo($myVar);
источник