PHPでリンク(Webページ)のHTMLコードを取得したい。たとえば、リンクが
次に、提供されるページのHTMLコードが必要です。このHTMLコードを取得してPHP変数に格納したいと思います。
これどうやってするの?
PHPでリンク(Webページ)のHTMLコードを取得したい。たとえば、リンクが
次に、提供されるページの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は 非常に使いやすいと思います。
YahooからYQLライブラリをチェックアウトすることをお勧めします:http ://developer.yahoo.com/yql
手元のタスクは、と同じくらい簡単です
select * from html where url = 'http://stackoverflow.com/questions/ask'
コンソールでこれを試すことができます:http : //developer.yahoo.com/yql/console(ログインが必要です)
また、Chris Heilmannsのスクリーンキャストで、他に何ができるかについての素晴らしいアイデアをご覧ください。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');
URL対応のfopenラッパーを使用できるようにするには、にいるallow_url_fopen必要がtrueありますphp.ini。
より高度な方法:あなたがPHPの設定を変更できない場合は、allow_url_fopenあるfalseデフォルトでかつEXT /カールがインストールされている場合は、使用してcURLライブラリーを、目的のページに接続するために。
URLからコンテンツを取得する 2つの異なる簡単な方法を次に示します。
1)最初の方法
ホスティング(php.iniまたはどこか)からAllow_url_includeを有効にします。
<?php
$variableee = readfile("http://example.com/");
echo $variableee;
?>
または
2)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;