Html源文件中image标签的析取
今天介绍一种从指定网页源文件中析取image标签的的编程技巧,即从网页源文件中,解析出所有的插图文件名(包括图片路径),也就是标签<img src=".../... /abc.jpg"> 中的文件名".../.../abc.jpg"(有的可能是gif格式)。编程环境:PHP+Apache for Win98。 .z\`gW`%K)h2MA,~5o(F]o+Y \
首先, 用文本编辑器新建一个PHP类型的文件:abstractSRCfrompage.php3。为了方便讲解,我们打算是在浏览器表单域中输入需要析取image标签的网页的URL(或本机文档),提交后执行析取操作,所以在该文件中,我们要建立一个用于输入网址的表单,举例如下:
1{pV?i
<form action=" abstractSRCfrompage.php3" method="post">
输入网址<input type=text name=filename><br>
<input type=submit name=submit value="提交">!ni7`l2X
</form> $] iH*R+d8r
ph;mJ,iv%`l
输入正确的网址,提交后表单信息被送到abstractSRCfrompage.php3页面,由于表单本身就在该页面,所以相当于被送到自身页面,下面我们需要编写析取处理的PHP代码,紧接着表单代码段后写入如下代码:d"Oq#Y(X;Ii
)V+Omz"m?Tr
:SBc _|t5Tb3[
<?phprK6[Bs}:OK
if ($filename!=""){x-b6atN$}b2QT0JJ
$fp = fopen($filename, "r"); file://若输入不为空,开启本地或者远程档案;O/EDV8Cy8Y m
while ($buffer = fgets($fp, 1024)) {9T aD|Ati M%vFe
$source .=$buffer; }`[Z-l8bD.K
fclose($fp);D\^Uk'r%?:q*B
file://查找$source中是否有<img ...src=".../...gif | jpg"> 这样的标记
if(eregi("(<img)+[^<>]+(src=")+[^*"<>|]+(.)+((gif)|(jpg))+(")",$source)) {~1B.g-]#y&[(L |
echo "找到图片标签:)<br>";}
else{B-@.f^z*d7x]2}
echo "未发现图片标签:(<br>";}