php - 正在做一个有关获取价格的项目,匹配价格上出现一点问题,求指教

查看:116
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆