国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php中Curl函數常用的兩個例子,登陸/soap

2024-05-04 21:48:25
字體:
來源:轉載
供稿:網友

curl在php中在性能方法要比較其它相同功能函數要高得多,下面我給大家介紹我自己常用的函數一個使用PHP curl 來做登陸后的抓取時使用,一個使用PHP curl來實現soap;我想你會感興趣.

例子,模擬登陸,代碼如下:

  1. /** 
  2. * 模擬登陸 
  3. * $url 請求地址 
  4. * $post 需要POST的數據 
  5. * $cookie 登陸時取的的COOKIE 
  6. * $cookiejar cookie要存到的位置 例如/tmp/test.cookie 
  7. * $referer 上頁地址 
  8. * 
  9. **/ 
  10. function vcurl($url$post = ''$cookie = ''$cookiejar = ''$referer = ''){ 
  11. $tmpInfo = ''
  12. //用來存放cookie的文件 
  13. //初始化curl 
  14. $curl = curl_init(); 
  15. //設定目標網址 
  16. curl_setopt($curl, CURLOPT_URL, $url); 
  17. //使用目前所用的瀏覽器代理 
  18. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
  19. //curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); 
  20. //如果有Ref參數,則設置Referer頭,否則自動設置Referer頭 
  21. if($referer) { 
  22. curl_setopt($curl, CURLOPT_REFERER, $referer); 
  23. else { 
  24. curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 
  25. //如果有post數據參數,則方法為POST,并且設置數據,否則為GET 
  26. if($post) { 
  27. //發送一個常規的POST請求,默認類型為:application/x-www-form-urlencoded,m.survivalescaperooms.com表單提交 
  28. curl_setopt($curl, CURLOPT_POST, 1); 
  29. curl_setopt($curl, CURLOPT_POSTFIELDS, $post); 
  30. //如果有cookie參數,則設置 
  31. if($cookie) { 
  32. curl_setopt($curl, CURLOPT_COOKIE, $cookie); 
  33. //如果有cookie文件參數,則設置存取Cookie文件名 
  34. if($cookiejar) { 
  35. curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiejar); 
  36. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiejar); 
  37. //如果是302轉移,則返回轉移后的網址及內容 
  38. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
  39. //設置執行的最大秒數 
  40. curl_setopt($curl, CURLOPT_TIMEOUT, 100); 
  41. //返回內容中是否包含頭信息 
  42. curl_setopt($curl, CURLOPT_HEADER, 0); 
  43. //把返回的結果存在文件或者變量中,而不是直接顯示在瀏覽器 
  44. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  45. //執行函數后的返回結果 
  46. $tmpInfo = curl_exec($curl); 
  47. //如果出錯,顯示錯誤信息 
  48. if (curl_errno($curl)) { 
  49. $tmpInfo = '<pre><b>錯誤:</b><br />'.curl_error($curl); 
  50. }//開源代碼Vevb.com 
  51. //關閉curl對象 
  52. curl_close($curl); 
  53. //返回結果 
  54. return $tmpInfo

例子,soap代碼如下:

  1. function vcurlsoap($url$SoapRequest$SoapAction) { 
  2. $ch = curl_init (); //initiate the curl session 
  3. curl_setopt ( $ch, CURLOPT_URL, $url ); //set to url to post to 
  4. curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); // return data in a variable 
  5. curl_setopt ( $ch, CURLOPT_HEADER, 0 ); 
  6. curl_setopt ( $ch, CURLOPT_POST, 1 ); 
  7. curl_setopt ( $ch, CURLOPT_POSTFIELDS, $SoapRequest ); // post the xml 
  8. curl_setopt ( $ch, CURLOPT_TIMEOUT, 60 ); // set timeout in seconds 
  9. curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); 
  10. $header = array ("Content-Type: text/xml" ); 
  11. $header [] = "Content-Length: ".strlen($SoapRequest); 
  12. if (! is_null ( $SoapAction )) 
  13. $header [] = 'SOAPAction: "' . $SoapAction . '"'
  14. curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header ); 
  15. $xmlResponse = curl_exec ( $ch ); 
  16. curl_close ( $ch ); 
  17. return $xmlResponse

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潍坊市| 阿拉善左旗| 上饶县| 拉孜县| 武邑县| 千阳县| 灵台县| 淳安县| 江口县| 油尖旺区| 扎囊县| 景东| 咸宁市| 西昌市| 武功县| 金门县| 象山县| 鄂托克旗| 商都县| 宜黄县| 徐水县| 东乡族自治县| 静乐县| 资兴市| 新密市| 察隅县| 莫力| 七台河市| 盐边县| 新疆| 富蕴县| 洪洞县| 乌兰察布市| 崇州市| 外汇| 平安县| 遂宁市| 漾濞| 卫辉市| 太和县| 大悟县|