php获取html标签image的src内容 正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php获取html标签image的src内容 正则表达式相关的知识,希望对你有一定的参考价值。
比如‘test.html’中有这样一段:
<img id="Image1" align="absmiddle" src="vcode.aspx?num=4171" style="border-color:Blue;border-width:1px;border-style:solid;">
我的目的是得到数字‘4171’,这个数字每次刷新都会变,但却是固定4位。
方法应该很多,4171的位置是固定的,就是得到字符串<img id="Image1" align="absmiddle" src="vcode.aspx?num=4171" style="border-color:Blue;border-width:1px;border-style:solid;">也行了,那如何得到html中的属性值呢?或者用正则,但我不会。该怎么得到呢?phpquery好像只能得到内容啊,不能得到标签的属性值
$str = \'<img src="1.gif" >\';
preg_match_all(\'/<img.*?src="(.*?)".*?>/is\',$str,$array);
print_r($array);
php对图片的操作正则表达式详解:
//1、取整个图片代码
preg_match(\'/<\\s*img\\s+[^>]*?src\\s*=\\s*(\\\'|\\")(.*?)\\\\1[^>]*?\\/?\\s*>/i\',$str,$match);
echo $match[0];
//2、取width
preg_match(\'/<img.+(width=\\"?\\d*\\"?).+>/i\',$str,$match);
echo $match[1];
//3、取height
preg_match(\'/<img.+(height=\\"?\\d*\\"?).+>/i\',$str,$match);
echo $match[1];
//4、取src
preg_match(\'/<img.+src=\\"?(.+\\.(jpg|gif|bmp|bnp|png))\\"?.+>/i\',$str,$match);
echo $match[1];
/*PHP正则替换图片img标记中的任意属性*/
//1、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg")
print preg_replace(\'/(<img.+src=\\"?.+)(images\\/)(.+\\.(jpg|gif|bmp|bnp|png)\\"?.+>)/i\',"\\$1uc/images/\\$3",$str);
echo "<hr/>";
//2、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg",并省去宽和高
print preg_replace(\'/(<img).+(src=\\"?.+)images\\/(.+\\.(jpg|gif|bmp|bnp|png)\\"?).+>/i\',"\\$1 \\$2uc/images/\\$3>",$str);
?> 参考技术A 如果你指的是HTML页面文件中的属性解析,最简单的方法就是下载一个开源的HTML解析工具,用你的代码把它集成进去。或者你自己写一个解析函数,把整个HTML文件一行行读取出来,然后用CString类中的find进行查找。追问
解析器,,没接触过。就是比如xxx这样的东西,我想得到height = '100',而不是xxx,这样子得用到解析器吗?
如何使用 php 从 Image 标签中单独获取 src? [复制]
【中文标题】如何使用 php 从 Image 标签中单独获取 src? [复制]【英文标题】:How can i get src alone from Image tag using php? [duplicate] 【发布时间】:2011-09-13 23:25:12 【问题描述】:可能重复:How to extract img src, title and alt from html using php?
<img src="http://runapvo.apivo.com/files/2011/06/2444-200x300.jpg" class="attachment-medium" title="2444" />
从这个图像标签我需要单独使用src
。我怎样才能做到这一点?有没有预定义的函数可用?...
【问题讨论】:
***.com/search?q=get+src+html+php 【参考方案1】:使用loadHtml
将其加载到DOM树中并对其进行xpath,如果结构始终相同,则直接遍历它。
见How to extract img src, title and alt from html using php?
【讨论】:
【参考方案2】:假设您在页面上显示图像
您应该使用html dom parser。这将允许您解析自己的页面。虽然我很想问你为什么要在所有语言的 php 中这样做?如果您只需要静态页面上的 src,那不应该改变,因此您无需在每次想要获取其 src 时调用 php。如果它是动态的(如由 php 变量定义的),您仍然应该能够访问该变量。
假设页面不属于你
您将要使用正则表达式和 php 抓取页面,this 几乎可以回答如何。
旁注:
如果没有必要在 php 中执行此操作,我建议使用以下 javascript 函数将工作传递给客户端:
document.getElementById("MyIMG").src
这可能不利的唯一原因是,如果服务器需要该 src,客户端将没有 js(即手机浏览器),或者客户端非常糟糕,运行额外的 javascript 可能会导致它崩溃:)
【讨论】:
以上是关于php获取html标签image的src内容 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式和 PHP - 从 img 标签中隔离 src 属性