>백엔드 개발 >PHP 튜토리얼 >PHP는 Taobao의 제품 가격 인기 소스 코드를 구현합니다.

PHP는 Taobao의 제품 가격 인기 소스 코드를 구현합니다.

WBOY
WBOY원래의
2016-07-29 09:04:331837검색

겨울방학 동안 집에 있으면서 심심해서 타오바오 관련 개발이 어떤지 보고 싶어서 타오바오 개발자 등록을 하다가 API를 조정하려고 해보니 복잡한 것들이 많았습니다. 일부는 요금이 너무 많이 청구되어 속아서 타오바오 데이터를 일부 캡쳐해서 나만의 API를 만들었습니다.

제품 인기 획득, 즉 수집가 수는 현재 Tmall이 아닌 Taobao 제품만 지원합니다. 인기 및 제품 이름 획득은 Taobao와 Tmall 모두에서 지원되지만 Taobao의 캐시 파일에서 캡처되기 때문에, 그래서. . . 약간의 문제가 있을 수 있지만 테스트하는 동안에는 아무런 문제도 발생하지 않았습니다.

사용 중 문제를 발견하시면 연락주시면 개선하도록 하겠습니다.

내 연락처:

  • Weibo: http://weibo.com/578013333
  • 이메일: leiflyy@outlook.com

동시에 구현된 제품 사진을 구하는 등 다른 일들도 해볼 예정인데 별로 쓸모가 없는 것 같아요. . . 그래서 다음판에 추가하겠습니다.

자, 더 이상 말도 안 되는 소리는 그만하고 소스 코드로 가보겠습니다

<code><span><span><?php</span><span>/**
 * Created by PhpStorm.
 * User: leif
 * Date: 16/1/26
 * Time: 10:17
 * email: leiflyy@outlook.com
 */</span><span>/**
 *  实现传入宝贝的id,返回宝贝的链接,支持淘宝
 *<span> @param</span> $id 宝贝的id
 *<span> @return</span> string 返回的宝贝的链接
 */</span><span><span>function</span><span>getTbLink</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=<span>"https://item.taobao.com/item.htm?spm=a1z10.4-c.w5003-12641268955.30.0lDnKZ&id="</span>.<span>$id</span>.<span>"&scene=taobao_shop"</span>;
    <span>return</span><span>$url</span>;
}


<span>/**
 * 实现传入宝贝的id,获取宝贝的商品名,支持淘宝和天猫
 *<span> @param</span> $id  宝贝的id
 *<span> @return</span> mixed  宝贝的商品名
 */</span><span><span>function</span><span>getNameById</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=<span>"http://hws.m.taobao.com/cache/wdetail/5.0/?id="</span>.<span>$id</span>;
    <span>$content</span>=file_get_contents(<span>$url</span>);
    <span>$content_ori</span>=strip_tags(<span>$content</span>);
    <span>$content_arr</span>=json_decode(<span>$content_ori</span>,<span>true</span>);
    <span>$detail</span>=json_decode(<span>$content_arr</span>[<span>'data'</span>][<span>'apiStack'</span>][<span>'0'</span>][<span>'value'</span>],<span>true</span>);
    <span>$success_sym</span>=<span>$detail</span>[<span>'ret'</span>][<span>'0'</span>];<span>//成功则返回"SUCCESS::调用成功";</span><span>if</span>(<span>$success_sym</span>==<span>"SUCCESS::调用成功"</span>){
        <span>$name</span>=<span>$content_arr</span>[<span>'data'</span>][<span>'itemInfoModel'</span>][<span>'title'</span>];
        <span>return</span><span>$name</span>;
    }<span>else</span>{
        <span>return</span><span>"<script type='text/javascript'>alert('宝贝不存在!');</script>"</span>;
    }

}

<span>/**
 * 实现传入宝贝id,获取宝贝价格,支持淘宝和天猫
 *<span> @param</span> $id   宝贝的id
 *<span> @return</span> mixed 返回的宝贝的价格或价格区间
 */</span><span><span>function</span><span>getPriceById</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=<span>"http://hws.m.taobao.com/cache/wdetail/5.0/?id="</span>.<span>$id</span>;
    <span>$content</span>=file_get_contents(<span>$url</span>);
    <span>$content_ori</span>=strip_tags(<span>$content</span>);
    <span>$content_arr</span>=json_decode(<span>$content_ori</span>,<span>true</span>);
    <span>$pro_detail</span>=json_decode(<span>$content_arr</span>[<span>'data'</span>][<span>'apiStack'</span>][<span>'0'</span>][<span>'value'</span>],<span>true</span>);
    <span>$success_sym</span>=<span>$pro_detail</span>[<span>'ret'</span>][<span>'0'</span>];<span>//成功则返回"SUCCESS::调用成功";</span><span>if</span>(<span>$success_sym</span>==<span>"SUCCESS::调用成功"</span>){
        <span>$pro_price</span>=<span>$pro_detail</span>[<span>'data'</span>][<span>'itemInfoModel'</span>][<span>'priceUnits'</span>][<span>'0'</span>][<span>'price'</span>];
        <span>return</span><span>$pro_price</span>;
    }<span>else</span>{
        <span>return</span><span>"<script type='text/javascript'>alert('宝贝不存在!');</script>"</span>;
    }
}

<span>/**
 *  实现传入宝贝id,获取宝贝的收藏人数(人气),支持淘宝
 *<span> @param</span> $id  宝贝id
 *<span> @return</span> mixed   返回的宝贝的收藏人数(人气)
 */</span><span><span>function</span><span>getPopById</span><span>(<span>$id</span>)</span>{</span><span>$url</span>=getTbLink(<span>$id</span>);
    <span>$urlinfo</span> = parse_url(<span>$url</span>);
    parse_str(<span>$urlinfo</span>[<span>'query'</span>], <span>$query</span>);
    <span>$id</span> = <span>$query</span>[<span>'id'</span>];
    <span>$data</span> = file_get_contents(<span>$url</span>);
    <span>$start</span> = strpos(<span>$data</span>, <span>'counterApi'</span>);
    <span>$start</span> = strpos(<span>$data</span>, <span>": "</span>, <span>$start</span>);
    <span>$end</span> = strpos(<span>$data</span>, <span>"',"</span>, <span>$start</span>);
    <span>$api</span> = <span>'https:'</span> . substr(<span>$data</span>, <span>$start</span> + <span>3</span>, <span>$end</span> - <span>$start</span> - <span>3</span>) . <span>'&callback=jsonp107'</span>;
    <span>$response</span> = file_get_contents(<span>$api</span>);
    <span>$response</span> = substr(<span>$response</span>, <span>9</span>, -<span>2</span>);
    <span>$arr</span> = json_decode(<span>$response</span>, <span>true</span>);
    <span>$popularity</span>=<span>$arr</span>[<span>'ICCP_1_'</span>.<span>$id</span>];
    <span>return</span><span>$popularity</span>;
}</span></code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 관련 내용을 포함해 타오바오 제품의 가격과 인기를 파악하기 위한 PHP 소스코드를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.