让淘宝链接在微信中分享,GO
老婆开了个淘宝店,小卖家的心理大家都知道,一开始的小店总是没有光顾,吸引流量成了重中之中。
所以她到处发链接,微信里发了好多条,可是没过多久有好友微她,问她发的时什么,为什么都是打不开的。结果直接傻眼,来问我是不是她的微信坏掉了,我只能告诉她,这真不能怪她,两大掐架呢, 你属于误伤,把淘宝链接直接放在微信中分享是不行的,问我为什么 ,我哪里知道为什么! (其实我知道,更她解释太麻烦,她又不一定听得懂),她就有没有办法解决,我说没有办法,她就来了句,还电脑高手呢,这么简单的问题也解决不掉!嘿瞧我这暴脾气,我就受不了激!
还好有万能的搜索,找了一下解决方案,原来把网页放到ifrmae 里就可以了,这简单,我有个SAE,做了同个页面扔上去把链接发给她,解决了。没过几天问题又来了,她上新了,又要发,这样手动加也不是个办法,做个小程序吧,不就简单的CURD吗,操起PHP,下载个thinkphp (不知道为什么 总有人觉得它不好,我觉得他挺好)不到50行代码就搞定了,为了方便,还给顺手生成一个二维码,
1 2 3 4 5 6 7 8 9 10 | public function qrcode( $guid ) { vendor( "phpqrcode.phpqrcode" ); $url = "http://" . $_SERVER [ 'HTTP_HOST' ].U( 'Urlhandle/show' , array ( 'guid' => $guid ), $domin =true); $level = 'L' ; $size = 8; ob_clean(); \QRcode::png( $url ,false, $level , $size ); } |
有现成的东西用就是简单,phpqrocde so easy!,值得注意的地方, 我没有生成文件 ,所以一定要在
1 2 | \QRcode::png( $url ,false, $level , $size ); 前 加上 ob_clean(); |
1 |
ob_clean这个函数的作用就是用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的图片类文件,那么想要访问正确,就要经常清除缓冲区。
不然图片显示不正常,
做到这里,微信扫一扫,就能直接分享了,但是现在轮到我不满意了,因为分享出去的东西,就一个链接,没有图片,没有标题,如果我看到我的朋友圈里这种东西,我是不会点的,
要带上信息,才完美
1 |
但信息哪里来,最简单的方法,加两个输入框 自己加呐,但这不是我想要的,对于用的人来说,太麻烦了,哪么只有自己去取了,
通过输入的要转化的URL,自动去这个URL取,也有两个办法,
1、通过淘宝开放的API。(这是最稳定的)
2、抓网页啊分析啊, (时间长了会被封)
我最后还是选择了第二种方法,为什么 ?因为研究了taobao api 发现,获取商品信息的接口,它竟然是收费的,收费的,收费的!!
只能先用第二种方法了,强大的PHP 可以直接用CURL,但是这太麻烦了,特别是有些URL要经过几次301或302跳转的,只能找现成的的封装好的了,
一开始用的是snoopy 太好用了,代码又少,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $snoopy = new \Snoopy(); $snoopy ->agent= "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" ; $snoopy ->setcookies(); $snoopy ->rawheaders[ "Accept-Encoding" ] = "gzip, deflate, sdch" ; $snoopy ->rawheaders[ "Accept" ] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" ; $snoopy ->fetch( $turl ); print_r(get_headers( $turl )); dump( $snoopy ->port); dump( $snoopy ->host); dump( $snoopy ->headers); $content = $snoopy ->results; echo $content ; |
就这么简单,就获取URL返回的文本内容了,
但是snoopy 在处理有些跳转的时候 经常不能正确返回,而是返回了,404错误,不得以,改用了Requests这个类库,他提供两种方式来获取,一种通过CURL也可以用fsockopen的方式 ,强大而且稳定,
$headers= array( 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' ); $options = array( 'useragent' => 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36', 'transport' => 'Requests_Transport_fsockopen' ); $request = Requests::get($url, $headers,$options); $content=$request->body;
transport 参数就是我指定它fsockopen的方式,因为我的虚拟主机在用curl 获取https的时候 ,经常会出错,不得已。
这样一来。图片和标题,都搞定了,
分享在朋友圈里也是可以带上图片和标题了的,
做我这一切,我索性,美化了一下页面,上传到我的虚拟主机上了,造福大众去了,
http://www.wx2share.com 让淘宝链接在微信中分享
代码花了一天不到的时候 ,发现前端才是最磨人的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?