php - 正在做一个有关获取价格的项目,匹配价格上出现一点问题,求指教
本文介绍了php - 正在做一个有关获取价格的项目,匹配价格上出现一点问题,求指教的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
$fp = fopen("https://list.tmall.com/search_product.htm?q=hello kitty&sort=p&style=g&tmhkmain=0#J_Filter","r");
$tmall = stream_get_contents($fp, 1024*1024);
$tmall = urlencode($tmall);
$rule = '/class%3D%22product%22(.*)class%3D%22product%22/s';
preg_match($rule,$tmall,$result);
print_r($result);
exit;//打印不出来
$goods_div=urldecode($result[0]);
$rule_price='/<\/b>(.*)<\/em>/';
$rule_url = '/detail.tmall.com.*" /';
preg_match($rule_price,$goods_div,$price);
preg_match($rule_url,$goods_div,$url);
$url=explode('"', $url[0]);
echo $price[1].$url[0];
是匹配的规则出错了吗
解决方案
error_reporting(0);
$res = file_get_contents("https://list.tmall.com/search_product.htm?q=hello%20kitty&sort=p&style=g&tmhkmain=0");
preg_match_all('/<div\sclass="product.*>.*<\/span>.*<\/p>.*<\/div>.*<\/div>/Uis', $res,$m);
foreach ($m[0] as $k=>$v){
preg_match_all('/(data-ks-lazyload|src)=.*"\/\/(img.*)".*>.*<em\stitle="(.*)"><b>.*<a\shref="\/\/(.*)".*>(.*)<\/a>.*<span>.* <em>(.*)<\/em><\/span>/Uis', $v,$mm);
$data[$k][title] = trim($mm[5][0]);
$data[$k][price] = $mm[3][0];
$data[$k][cj_nums] = $mm[6][0];
$data[$k][url] = htmlspecialchars_decode($mm[4][0]);
$data[$k][img] = $mm[2][0];
}
var_dump($data);die;
这篇关于php - 正在做一个有关获取价格的项目,匹配价格上出现一点问题,求指教的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文