<?php
/**
* 代理模式
*
*/
class Proxy
{
private $server = '192.168.0.249';
private $port = '9999';
private $protocol = 'http';
private static $url = '';
private static $obj = null;
private function __construct()
{
}
/**
* @param $url 代理服务url
* @return null|Proxy
*/
public static function instance($url)
{
if (self::$obj ==null) {
self::$url = $url;
return new self($url);
}
return self::$obj;
}
/**
* 发送请求
* @param string $type 类型
* @param array $param 参数
*/
public function request($type, $param)
{
$url = self::$url;
$param_str = http_build_query($param);
switch ($type) {
case 'post':
$this->post($url, $param_str);
break;
case 'get':
$this->get($url, $param_str);
break;
}
}
/**
* get请求
* @param $url
* @param $get_param
*/
private function get($url, $get_param)
{
$url = $url . '?' . $get_param;
$default_opt = array(
CURLOPT_HEADER => false,
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => false,
CURLOPT_FORBID_REUSE => false,
CURLOPT_RETURNTRANSFER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
//CURLOPT_TIMEOUT => 5,
);
$curl = curl_init();
curl_setopt_array($curl, ($default_opt));
curl_exec($curl);
curl_close($curl);
}
/**
* post请求
* @param $url
* @param $post_param
*/
private function post($url, $post_param)
{
$default_opt = array(
CURLOPT_HEADER => false,
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => false,
CURLOPT_FORBID_REUSE => false,
CURLOPT_RETURNTRANSFER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
//CURLOPT_TIMEOUT => 5,
);
$options = array(
CURLOPT_POSTFIELDS => $post_param,
CURLOPT_POST => true,
);
$curl = curl_init();
curl_setopt_array($curl, ($default_opt + $options));
curl_exec($curl);
curl_close($curl);
}
}
?>
【PHP】代理模式
于 2018-03-12 15:00:07 首次发布