您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

字符匹配的有关问题

2025/12/11 13:11:46发布28次查看
字符匹配的问题
请问怎么在一堆源码中匹配以下字符
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 = '
';
$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];
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product