首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

字符匹配的有关问题

2013-08-01 
字符匹配的问题请问怎么在一堆源码中匹配以下字符img idmain-image srchttp://ecx.images-mazon.com/

字符匹配的问题
请问怎么在一堆源码中匹配以下字符
img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg"

我主要是想获取到图片的地址,其中41Auzc7RBPL._SY300_(图片的文件名称是随机产生的,每次都不一样的),
请问怎么获取到http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg
[解决办法]
用正则处理最方便:

$str = '请问怎么在一堆源码中匹配以下字符
img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg"';

$p = '#img\s*id="main-image"\s*src="(http://ecx\.images-mazon\.com/images/I/.+\.(jpg
[解决办法]
gif
[解决办法]
jpeg
[解决办法]
png))"#U';
preg_match($p, $str, $result) && var_dump($result);

根据情况也可以解析为DOM:
$html = '<div><img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg" /></div>';
$doc = new DOMDocument();
$doc->loadHTML($html);
echo $doc->getElementById('main-image')->getAttribute('src');


经循环100000次测试,后者的速度是前者正则的7倍,而且随着测试源字符串的体积增大,差距将可能更大
[解决办法]
$str='img id="main-image" src="http://ecx.images-mazon.com/images/I/41Auzc7RBPL._SY300_.jpg"';
$p = 
[解决办法]
img id="main-image" src="(.*)"
[解决办法]
iUs;
preg_match($p, $str, $result);
print_r($result);
//如果你只需要对获取到的网址里那个图片名称那么你需要分割
$ep=explode('/',$result[0]);
echo $ep[5];

热点排行