URL.class.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /* PHP SDK
  3. * @version 2.0.0
  4. * @author connect@qq.com
  5. * @copyright © 2013, Tencent Corporation. All rights reserved.
  6. */
  7. require_once(CLASS_PATH."ErrorCase.class.php");
  8. /*
  9. * @brief url封装类,将常用的url请求操作封装在一起
  10. * */
  11. class URL{
  12. private $error;
  13. public function __construct(){
  14. $this->error = new ErrorCase();
  15. }
  16. /**
  17. * combineURL
  18. * 拼接url
  19. * @param string $baseURL 基于的url
  20. * @param array $keysArr 参数列表数组
  21. * @return string 返回拼接的url
  22. */
  23. public function combineURL($baseURL,$keysArr){
  24. $combined = $baseURL."?";
  25. $valueArr = array();
  26. foreach($keysArr as $key => $val){
  27. $valueArr[] = "$key=$val";
  28. }
  29. $keyStr = implode("&",$valueArr);
  30. $combined .= ($keyStr);
  31. return $combined;
  32. }
  33. /**
  34. * get_contents
  35. * 服务器通过get请求获得内容
  36. * @param string $url 请求的url,拼接后的
  37. * @return string 请求返回的内容
  38. */
  39. public function get_contents($url){
  40. if (ini_get("allow_url_fopen") == "1") {
  41. $response = file_get_contents($url);
  42. }else{
  43. $ch = curl_init();
  44. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  45. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  46. curl_setopt($ch, CURLOPT_URL, $url);
  47. $response = curl_exec($ch);
  48. curl_close($ch);
  49. }
  50. //-------请求为空
  51. if(empty($response)){
  52. $this->error->showError("50001");
  53. }
  54. return $response;
  55. }
  56. /**
  57. * get
  58. * get方式请求资源
  59. * @param string $url 基于的baseUrl
  60. * @param array $keysArr 参数列表数组
  61. * @return string 返回的资源内容
  62. */
  63. public function get($url, $keysArr){
  64. $combined = $this->combineURL($url, $keysArr);
  65. return $this->get_contents($combined);
  66. }
  67. /**
  68. * post
  69. * post方式请求资源
  70. * @param string $url 基于的baseUrl
  71. * @param array $keysArr 请求的参数列表
  72. * @param int $flag 标志位
  73. * @return string 返回的资源内容
  74. */
  75. public function post($url, $keysArr, $flag = 0){
  76. $ch = curl_init();
  77. if(! $flag) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  78. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  79. curl_setopt($ch, CURLOPT_POST, TRUE);
  80. curl_setopt($ch, CURLOPT_POSTFIELDS, $keysArr);
  81. curl_setopt($ch, CURLOPT_URL, $url);
  82. $ret = curl_exec($ch);
  83. curl_close($ch);
  84. return $ret;
  85. }
  86. }