Jadual Kandungan
Windows下用PHP做网页截图
Linux下用PHP做网页截图

PHP怎么抓屏

Jun 13, 2016 pm 01:02 PM
amp browser http lib

PHP怎样抓屏?

Windows下用PHP做网页截图

在Apache的服务属性里,“登录”选项卡中选中“允许服务与桌面交换”就行了!

?

<?php $browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Width = 500;
$browser->Height = 500;
$browser->Navigate("http://www.un.org");
/* Still working? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
?> 
Salin selepas log masuk

?运行这段代码的时候服务器上会弹出一个IE窗口并自动打开指定的网站,截屏后窗口自动关闭,相当傻瓜!

?

?

?

?

?

Linux下用PHP做网页截图

上alexa 时,总能看到alexa 显示被查询网站的首页截图,这个截图是怎么实现的呢。
通过察看页面内容,发现原来是通过调用amazon的服务程序 获得的。
http://ast.amazonaws.com/Xino/?Action=Redirect&Service=AlexaSiteThumbnail&Url=baidu.com&
AWSAccessKeyId=1FVZ0JNEJDA5TK457CR2&Signature=tz4xyqDNcSf8A1v%2BpDo4todvM9c%3D&
Size=Small&Timestamp=2008-03-04T06%3A04%3A47.422Z&
DefaultImage=http%3A%2F%2Fclient.alexa.com%2Fcommon%2Fimages%2Fnoimages.gif
如果想在自己的网站中做出这种效果,完全可以在amazon申请一个ID获得这样的调用接口来实现。
但是,这样怎么符合探究精神?所以,经过一番翻箱倒柜,找到下面的方法来自己实现网站的首页截图。

实现网站首页页面缩略图制作。
步骤:
1. 启动一个页面抓取工具,抓取选定的网站首页;
2.存储抓取的页面截图到服务器 上;
3.按照需要显示的大小处理抓取的页面截图;
4.把结果展现给用户
综上所述,其实关键是在于需要有一个稳定的抓取工具,经过在网上寻找,找到下面几个工具。

在windows环境下,可以考虑这个工具软件来抓页面截图:
IECapt.exe
在linux环境下,可以考虑这个工具软件来抓页面截图:
HTML2Image
获得抓取工具之后,就可以采用任何一种服务器语言 编写程序,调用这个抓取工具,然后把抓取结果返回给用户。
下面是利用IECapt.exe并结合PHP抓取网站截图的例子。
在Windows/Apache2.2/Php5.2.5 下运行通过。

参考资料:
1.http://www.zubrag.com/scripts/website-thumbnail-generator.php
2.http://www.guangmingsoft.net/htmlsnapshot/html2image.htm

官方url:http://www.guangmingsoft.net/htmlsnapshot/html2image.htm
Linux kernel- 2.2.14及以上: 安装必需lib及相关软件
yum install -y glibc gtk+ fontconfig??cairo libpixman pango pango-devel
下载html2image
wget http://www.guangmingsoft.net/htmlsnapshot/html2image.i386.tar.gz
tar xvzf html2image.i386.tar.gz
CD html2image
设置LD_LIBRARY_PATH路径
export LD_LIBRARY_PATH=./
mkdir /usr/X11R6/lib
ln - s /usr/share/X11 /usr/X11R6/lib/X11
运行Xvfb
./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg & export DISPLAY=:1
生成图片
./html2image www.google.com a.jpg
可忽略的错误:
error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy
Could not init font path element /usr/X11R6/lib/X11/fonts/TTF/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!
生成1024x768 格式 容量
jpg 871K
gif 4.12M
png 1.13M

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah maksud kod status http 520? Apakah maksud kod status http 520? Oct 13, 2023 pm 03:11 PM

Kod status HTTP 520 bermakna pelayan mengalami ralat yang tidak diketahui semasa memproses permintaan dan tidak dapat memberikan maklumat yang lebih khusus. Digunakan untuk menunjukkan bahawa ralat tidak diketahui berlaku semasa pelayan memproses permintaan, yang mungkin disebabkan oleh masalah konfigurasi pelayan, masalah rangkaian atau sebab lain yang tidak diketahui. Ini biasanya disebabkan oleh isu konfigurasi pelayan, isu rangkaian, kelebihan beban pelayan atau ralat pengekodan. Jika anda menghadapi ralat kod status 520, sebaiknya hubungi pentadbir tapak web atau pasukan sokongan teknikal untuk mendapatkan maklumat dan bantuan lanjut.

Cara menggunakan Pengurus Proksi Nginx untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Cara menggunakan Pengurus Proksi Nginx untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Sep 26, 2023 am 11:19 AM

Cara menggunakan NginxProxyManager untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Dengan perkembangan Internet, semakin banyak laman web mula menggunakan protokol HTTPS untuk menyulitkan penghantaran data untuk meningkatkan keselamatan data dan perlindungan privasi pengguna. Memandangkan protokol HTTPS memerlukan sokongan sijil SSL, sokongan teknikal tertentu diperlukan semasa menggunakan protokol HTTPS. Nginx ialah pelayan HTTP yang berkuasa dan biasa digunakan dan pelayan proksi terbalik, dan NginxProxy

Fahami senario aplikasi biasa pengalihan halaman web dan fahami kod status HTTP 301 Fahami senario aplikasi biasa pengalihan halaman web dan fahami kod status HTTP 301 Feb 18, 2024 pm 08:41 PM

Kuasai maksud kod status HTTP 301: Senario aplikasi biasa pengalihan halaman web Dengan perkembangan pesat Internet, keperluan orang ramai untuk interaksi halaman web menjadi lebih tinggi dan lebih tinggi. Dalam bidang reka bentuk web, pengalihan halaman web adalah teknologi biasa dan penting, dilaksanakan melalui kod status HTTP 301. Artikel ini akan meneroka maksud kod status HTTP 301 dan senario aplikasi biasa dalam pengalihan halaman web. Kod status HTTP301 merujuk kepada ubah hala kekal (PermanentRedirect). Apabila pelayan menerima pelanggan

Apakah kod status http 403? Apakah kod status http 403? Oct 07, 2023 pm 02:04 PM

Kod status HTTP 403 bermakna pelayan menolak permintaan pelanggan. Penyelesaian kepada kod status http 403 ialah: 1. Semak kelayakan pengesahan Jika pelayan memerlukan pengesahan, pastikan kelayakan yang betul disediakan 2. Semak sekatan alamat IP, pastikan bahawa alamat IP klien adalah disenarai putih atau tidak disenaraihitamkan 3. Semak tetapan kebenaran fail Jika kod status 403 berkaitan dengan tetapan kebenaran fail atau direktori, pastikan klien mempunyai kebenaran yang mencukupi untuk mengakses fail atau direktori ini. dll.

Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Sep 12, 2023 pm 01:15 PM

Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Dengan pembangunan Internet, fungsi muat turun fail telah menjadi salah satu keperluan asas bagi banyak laman web dan aplikasi. Untuk senario di mana berbilang fail perlu dimuat turun pada masa yang sama, kaedah muat turun segerak tradisional selalunya tidak cekap dan memakan masa. Atas sebab ini, menggunakan PHP untuk memuat turun berbilang fail secara tidak segerak melalui HTTP telah menjadi penyelesaian yang semakin biasa. Artikel ini akan menganalisis secara terperinci cara menggunakan HTTP tak segerak PHP melalui kes pembangunan sebenar.

Hantar permintaan POST dengan data borang menggunakan fungsi http.PostForm Hantar permintaan POST dengan data borang menggunakan fungsi http.PostForm Jul 25, 2023 pm 10:51 PM

Gunakan fungsi http.PostForm untuk menghantar permintaan POST dengan data borang Dalam pakej http bahasa Go, anda boleh menggunakan fungsi http.PostForm untuk menghantar permintaan POST dengan data borang. Prototaip fungsi http.PostForm adalah seperti berikut: funcPostForm(urlstring,dataurl.Values)(resp*http.Response,errerror)di mana, u

http meminta penyelesaian ralat 415 http meminta penyelesaian ralat 415 Nov 14, 2023 am 10:49 AM

Penyelesaian: 1. Semak Content-Type dalam tajuk permintaan 2. Semak format data dalam badan permintaan 3. Gunakan format pengekodan yang sesuai 5. Semak sokongan sisi pelayan;

Masalah komunikasi dan keselamatan rangkaian biasa dan penyelesaian dalam C# Masalah komunikasi dan keselamatan rangkaian biasa dan penyelesaian dalam C# Oct 09, 2023 pm 09:21 PM

Masalah dan penyelesaian komunikasi rangkaian dan keselamatan biasa dalam C# Dalam era Internet hari ini, komunikasi rangkaian telah menjadi bahagian yang sangat diperlukan dalam pembangunan perisian. Dalam C#, kami biasanya menghadapi beberapa masalah komunikasi rangkaian, seperti keselamatan penghantaran data, kestabilan sambungan rangkaian, dsb. Artikel ini akan membincangkan secara terperinci komunikasi rangkaian biasa dan isu keselamatan dalam C# dan menyediakan penyelesaian yang sepadan serta contoh kod. 1. Masalah komunikasi rangkaian Gangguan sambungan rangkaian: Semasa proses komunikasi rangkaian, sambungan rangkaian mungkin terganggu, yang boleh menyebabkan

See all articles