Dengan perkembangan teknologi Internet, fungsi tangkapan skrin halaman web telah menjadi alat penting, digunakan untuk tangkapan skrin laman web, petikan halaman, bukti foto, dsb. Tangkapan skrin automatik halaman web melangkah lebih jauh Ia bukan sahaja boleh memintas halaman tertentu secara automatik melalui pengaturcaraan, tetapi juga melakukan tangkapan skrin berjadual untuk menyelesaikan tugas pemantauan dengan mudah. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP untuk merealisasikan fungsi tangkapan skrin automatik halaman web.
1. Persediaan
Untuk merealisasikan tangkapan skrin automatik halaman web, kita perlu terlebih dahulu memasang perisian yang dipanggil "wkhtmltopdf". Ini ialah alat sumber terbuka yang digunakan untuk menukar halaman HTML kepada PDF, imej dan format lain. Dalam sistem CentOS, anda boleh memasangnya melalui arahan berikut:
yum install wkhtmltopdf
Dalam Ubuntu dan sistem siri Debian yang lain, anda boleh melaksanakan arahan berikut untuk memasangnya:
apt-get install wkhtmltopdf
Selepas pemasangan selesai, Kami boleh memanggilnya melalui PHP.
2. PHP merealisasikan tangkapan skrin automatik halaman web
1 Gunakan fungsi exec()
Anda boleh menggunakan fungsi exec() dalam PHP untuk melaksanakan perintah shell, jadi kami boleh menghubungi wkhtmltopdf untuk merealisasikan tangkapan skrin automatik halaman web. Berikut ialah contoh kod yang mengambil tangkapan skrin halaman utama Baidu dan menyimpannya ke lokasi yang ditentukan:
//网页地址 $url = "http://www.baidu.com"; //保存路径 $img_path = "/var/www/html/baidu.png"; //调用命令 exec("/usr/local/bin/wkhtmltoimage {$url} {$img_path}");
Kod di atas akan mengambil tangkapan skrin halaman utama Baidu dan menyimpannya ke fail baidu.png dalam direktori yang ditentukan. Antaranya, /usr/local/bin/wkhtmltoimage ialah laluan di mana wkhtmltopdf dipasang.
2. Gunakan curl
Anda juga boleh menggunakan curl untuk merealisasikan tangkapan skrin automatik halaman web. Berikut ialah contoh kod:
//网页地址 $url = 'http://www.baidu.com'; //设置curl $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_BINARYTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($curl, CURLOPT_TIMEOUT, 30); //获取数据 $content = curl_exec($curl); curl_close($curl); //保存图片 file_put_contents('/var/www/html/baidu.png', $content);
Kod di atas menggunakan curl untuk mendapatkan kandungan web dan menyimpannya ke fail baidu.png dalam direktori yang ditentukan.
3. Tangkapan skrin berjadual
Jika kita perlu melaksanakan tugas berjadual untuk mengambil tangkapan skrin halaman web, kita boleh menggunakan cron dalam sistem Linux untuk mencapainya. Cron ialah perkhidmatan yang kerap melaksanakan tugas dalam sistem Linux Dengan mengkonfigurasi jadual cron, pelaksanaan tugas secara berkala boleh dicapai. Berikut ialah contoh kod:
//截图网址 $url = 'http://www.baidu.com'; //图片保存路径 $img_path = "/var/www/html/baidu.png"; //调用命令 exec("/usr/local/bin/wkhtmltoimage {$url} {$img_path}");
Kod di atas digunakan untuk melaksanakan tugas tangkapan skrin berkala, yang boleh dilaksanakan secara kerap dengan mengkonfigurasi jadual cron dalam sistem Linux.
4 Ringkasan
Artikel ini memperkenalkan cara menggunakan PHP untuk merealisasikan fungsi tangkapan skrin automatik halaman web, termasuk menggunakan fungsi exec() dan curl untuk mendapatkan kandungan web dan menyimpannya sebagai imej, serta pelaksanaan tugas yang dijadualkan. Dalam aplikasi praktikal, kaedah yang sesuai boleh dipilih mengikut keperluan dan digunakan secara fleksibel.
Atas ialah kandungan terperinci Penjelasan terperinci tentang cara menggunakan PHP untuk merealisasikan fungsi tangkapan skrin automatik halaman web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!