Saya ingin mengambil kode HTML dari sebuah link (halaman web) di PHP. Misalnya, jika tautannya adalah
lalu saya ingin kode HTML halaman yang ditayangkan. Saya ingin mengambil kode HTML ini dan menyimpannya dalam variabel PHP.
Bagaimana saya bisa melakukan ini?
Jawaban:
Jika server PHP Anda mengizinkan pembungkus url fopen maka cara paling sederhana adalah:
$html = file_get_contents('/programming/ask');
Jika Anda membutuhkan lebih banyak kontrol maka Anda harus melihat fungsi 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);
sumber
Juga jika Anda ingin memanipulasi halaman yang diambil, Anda mungkin ingin mencoba beberapa pengurai DOM php. Saya menemukan PHP Simple HTML DOM Parser sangat mudah digunakan.
sumber
Anda mungkin ingin melihat perpustakaan YQL dari Yahoo: http://developer.yahoo.com/yql
Tugas yang ada adalah sesederhana
select * from html where url = 'http://stackoverflow.com/questions/ask'
Anda dapat mencobanya di konsol di: http://developer.yahoo.com/yql/console (memerlukan login)
Juga lihat screencast Chris Heilmanns untuk beberapa ide bagus apa lagi yang dapat Anda lakukan: http://developer.yahoo.net/blogs/theater/archives/2009/04/screencast_collating_distributed_information.html
sumber
Cara sederhana: Gunakan
file_get_contents()
:$page = file_get_contents('http://stackoverflow.com/questions/ask');
Harap dicatat bahwa
allow_url_fopen
harustrue
di Andaphp.ini
dapat menggunakan URL-sadar pembungkus fopen.Cara yang lebih maju: Jika Anda tidak dapat mengubah konfigurasi PHP Anda,
allow_url_fopen
secarafalse
default dan jika ext / curl diinstal, gunakancURL
perpustakaan untuk terhubung ke halaman yang diinginkan.sumber
Anda dapat menggunakan file_get_contents jika Anda ingin menyimpan sumber sebagai variabel namun curl adalah cara yang lebih baik.
$url = file_get_contents('http://example.com'); echo $url;
solusi ini akan menampilkan halaman web di situs Anda. Namun ikal adalah pilihan yang lebih baik.
sumber
lihat fungsi ini:
http://ru.php.net/manual/en/function.file-get-contents.php
sumber
include_once('simple_html_dom.php'); $url="http://stackoverflow.com/questions/ask"; $html = file_get_html($url);
Anda bisa mendapatkan seluruh kode HTML sebagai larik (bentuk parsing) menggunakan kode ini. Unduh file 'simple_html_dom.php' di sini http://sourceforge.net/projects/simplehtmldom/files/simple_html_dom.php/download
sumber
Berikut dua cara berbeda dan sederhana untuk mendapatkan konten dari URL :
1) metode pertama
Aktifkan Allow_url_include dari hosting Anda (php.ini atau di mana saja)
<?php $variableee = readfile("http://example.com/"); echo $variableee; ?>
atau
2) metode kedua
Aktifkan php_curl, php_imap dan 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; ?>
sumber
Anda juga dapat menggunakan metode DomDocument untuk mendapatkan variabel level tag HTML
$homepage = file_get_contents('https://www.example.com/'); $doc = new DOMDocument; $doc->loadHTML($homepage); $titles = $doc->getElementsByTagName('h3'); echo $titles->item(0)->nodeValue;
sumber
$output = file("http://www.example.com");
tidak bekerja sampai aku diaktifkan:allow_url_fopen, allow_url_include,
danfile_uploads
diphp.ini
untuk PHP7sumber
Saya mencoba kode ini dan berhasil untuk saya.
$html = file_get_contents('www.google.com'); $myVar = htmlspecialchars($html, ENT_QUOTES); echo($myVar);
sumber