本文整理汇总了PHP中Sms::_get_url方法的典型用法代码示例。如果您正苦于以下问题:PHP Sms::_get_url方法的具体用法?PHP Sms::_get_url怎么用?PHP Sms::_get_url使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sms
的用法示例。
在下文中一共展示了Sms::_get_url方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _post
/**
* post数据
* @param string $url post的url
* @param int $limit 返回的数据的长度
* @param string $post post数据,字符串形式username='dalarge'&password='123456'
* @param string $cookie 模拟 cookie,字符串形式username='dalarge'&password='123456'
* @param string $ip ip地址
* @param int $timeout 连接超时时间
* @param bool $block 是否为阻塞模式
* @return string 返回字符串
*/
private function _post($url, $limit = 0, $post = '', $cookie = '', $ip = '', $timeout = 15, $block = true)
{
$return = '';
$url = str_replace('&', '&', $url);
$matches = parse_url($url);
$host = $matches['host'];
$path = $matches['path'] ? $matches['path'] . ($matches['query'] ? '?' . $matches['query'] : '') : '/';
$port = !empty($matches['port']) ? $matches['port'] : 80;
$siteurl = Sms::_get_url();
if ($post) {
$out = "POST {$path} HTTP/1.1\r\n";
$out .= "Accept: */*\r\n";
$out .= "Referer: " . $siteurl . "\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
$out .= "Host: {$host}\r\n";
$out .= 'Content-Length: ' . strlen($post) . "\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cache-Control: no-cache\r\n";
$out .= "Cookie: {$cookie}\r\n\r\n";
$out .= $post;
} else {
$out = "GET {$path} HTTP/1.1\r\n";
$out .= "Accept: */*\r\n";
$out .= "Referer: " . $siteurl . "\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$out .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
$out .= "Host: {$host}\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: {$cookie}\r\n\r\n";
}
$fp = @fsockopen($ip ? $ip : $host, $port, $errno, $errstr, $timeout);
if (!$fp) {
return '';
}
stream_set_blocking($fp, $block);
stream_set_timeout($fp, $timeout);
@fwrite($fp, $out);
$status = stream_get_meta_data($fp);
if ($status['timed_out']) {
return '';
}
while (!feof($fp)) {
if (($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) {
break;
}
}
$stop = false;
while (!feof($fp) && !$stop) {
$data = fread($fp, $limit == 0 || $limit > 8192 ? 8192 : $limit);
$return .= $data;
if ($limit) {
$limit -= strlen($data);
$stop = $limit <= 0;
}
}
@fclose($fp);
var_export($return);
exit;
//部分虚拟主机返回数值有误,暂不确定原因,过滤返回数据格式
$return_arr = explode("\n", $return);
if (isset($return_arr[1])) {
$return = trim($return_arr[1]);
}
unset($return_arr);
return $return;
}