ホームページ  >  記事  >  バックエンド開発  >  PHP CURLカプセル化クラスコードの例

PHP CURLカプセル化クラスコードの例

WBOY
WBOYオリジナル
2016-07-25 08:55:50869ブラウズ
  1. /**
  2. * CURL カプセル化クラス
  3. * by bbs.it-home.org
  4. */
  5. class Curl_Class
  6. {
  7. function Curl_Class()
  8. {
  9. return true;
  10. }
  11. 関数execute($method, $url, $fields = '', $userAgent = '', $httpHeaders = '', $username = '', $password = '')
  12. {
  13. $ch = Curl_Class ::作成する();
  14. if (false === $ch)
  15. {
  16. false を返します。
  17. }
  18. if (is_string($url) && strlen($url))
  19. {
  20. $ret =curl_setopt($ch, CURLOPT_URL, $url);
  21. }
  22. else
  23. {
  24. false を返します。
  25. }
  26. //否か表示头部情報
  27. curl_setopt($ch, CURLOPT_HEADER, false);
  28. //
  29. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  30. if ($username != '')
  31. {
  32. curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password); $method = strto lower($method);
  33. if ('post' == $method)
  34. {
  35. curl_setopt($ch, CURLOPT_POST, true);
  36. if (is_array($fields))
  37. {
  38. $sets = array();
  39. foreach ($fields AS $key => $val)
  40. {
  41. $sets[] = $key . '=' 。 urlencode($val);
  42. }
  43. $fields = implode('&',$sets);
  44. }
  45. curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
  46. }
  47. else if ('put' == $method)
  48. {
  49. curl_setopt($ch, CURLOPT_PUT, true);
  50. }
  51. //curl_setopt($ch, CURLOPT_PROGRESS, true);
  52. //curl_setopt($ch, CURLOPT_VERBOSE, true);
  53. //curl_setopt($ch, CURLOPT_MUTE, false);
  54. curl_setopt($ch, CURLOPT_TIMEOUT, 3);//curl 超時間秒数を設定します。たとえば、情報 POST を出力してから 3 秒後に自動終了が実行されます。 CURLOPT_USERAGENT、$userAgent);
  55. }
  56. if (is_array($httpHeaders))
  57. { // bbs.it-home.org
  58. curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders); $ret =curl_exec($ch);
  59. if (curl_errno($ch))
  60. {
  61. curl_close($ch);
  62. return array(curl_error($ch),curl_errno($ch));
  63. }
  64. else
  65. {
  66. curl_close($ch);
  67. if (!is_string($ret) || !strlen($ret))
  68. {
  69. return false;
  70. }
  71. $ret を返す;
  72. }
  73. }
  74. function post($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = '')
  75. {
  76. $ret = Curl_Class::execute( 'POST'、$url、$fields、$userAgent、$httpHeaders、$username、$password);
  77. if (false === $ret)
  78. {
  79. false を返す;
  80. }
  81. if (is_array($ret))
  82. {
  83. false を返します。
  84. }
  85. $ret を返す;
  86. }
  87. function get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = '')
  88. {
  89. $ret = Curl_Class::execute('GET', $ URL、''、$userAgent、$httpHeaders、$username、$password);
  90. if (false === $ret)
  91. {
  92. false を返す;
  93. }
  94. if (is_array($ret))
  95. {
  96. false を返します。
  97. }
  98. $ret を返す;
  99. }
  100. 関数 create()
  101. {
  102. $ch = null;
  103. if (!function_exists('curl_init'))
  104. {
  105. return false;
  106. }
  107. $ch =curl_init();
  108. if (!is_resource($ch))
  109. {
  110. false を返します。
  111. }
  112. $ch を返します。
  113. }
  114. }
  115. 复制代
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。