老婆開了個淘寶店,小賣家的心理你們都知道,一開始的小店老是沒有光顧,吸引流量成了重中之中。php
因此她處處發連接,微信裏發了好多條,但是沒過多久有好友微她,問她發的時什麼,爲何都是打不開的。結果直接傻眼,來問我是否是她的微信壞掉了,我只能告訴她,這真不能怪她,兩大掐架呢, 你屬於誤傷,把淘寶連接直接放在微信中分享是不行的,問我爲何 ,我哪裏知道爲何! (其實我知道,更她解釋太麻煩,她又不必定聽得懂),她就有沒有辦法解決,我說沒有辦法,她就來了句,還電腦高手呢,這麼簡單的問題也解決不掉!嘿瞧我這暴脾氣,我就受不了激!html
還好有萬能的搜索,找了一下解決方案,原來把網頁放到ifrmae 裏就能夠了,這簡單,我有個SAE,作了同個頁面扔上去把連接發給她,解決了。沒過幾天問題又來了,她上新了,又要發,這樣手動加也不是個辦法,作個小程序吧,不就簡單的CURD嗎,操起PHP,下載個thinkphp (不知道爲何 總有人以爲它很差,我以爲他挺好)不到50行代碼就搞定了,爲了方便,還給順手生成一個二維碼,前端
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!,值得注意的地方, 我沒有生成文件 ,因此必定要在 web
\QRcode::png($url,false,$level,$size); 前 加上 ob_clean();
ob_clean這個函數的做用就是用來丟棄輸出緩衝區中的內容,若是你的網站有許多生成的圖片類文件,那麼想要訪問正確,就要常常清除緩衝區。
否則圖片顯示不正常,thinkphp
作到這裏,微信掃一掃,就能直接分享了,可是如今輪到我不滿意了,由於分享出去的東西,就一個連接,沒有圖片,沒有標題,若是我看到個人朋友圈裏這種東西,我是不會點的,
要帶上信息,才完美小程序
但信息哪裏來,最簡單的方法,加兩個輸入框 本身加吶,但這不是我想要的,對於用的人來講,太麻煩了,哪麼只有本身去取了,api
經過輸入的要轉化的URL,自動去這個URL取,也有兩個辦法,微信
一、經過淘寶開放的API。(這是最穩定的)cookie
二、抓網頁啊分析啊, (時間長了會被封)app
我最後仍是選擇了第二種方法,爲何 ?由於研究了taobao api 發現,獲取商品信息的接口,它居然是收費的,收費的,收費的!!
只能先用第二種方法了,強大的PHP 能夠直接用CURL,可是這太麻煩了,特別是有些URL要通過幾回301或302跳轉的,只能找現成的的封裝好的了,
一開始用的是snoopy 太好用了,代碼又少,
$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 讓淘寶連接在微信中分享
代碼花了一天不到的時候 ,發現前端纔是最磨人的