php 读取远程文件目录,PHP 读取远程文件的简单示例

/**

* PHP读取远程文件

*

* @param

* @author 编程之家 jb51.cc jb51.cc

**/

function urlfopen($url,$limit = 0,$post = '',$cookie = '',$bysocket = FALSE,$ip = '',$timeout = 15,$block = TRUE,$encodetype = 'URLENCODE') {

$return = '';

$matches = parse_url($url);

$host = $matches['host'];

$path = $matches['path'] ? $matches['path'].(isset($matches['query']) ? '?'.$matches['query'] : '') : '/';

$port = !empty($matches['port']) ? $matches['port'] : 80;

if($post) {

$out = "POST $path HTTP/1.0\r\n";

$out .= "Accept: */*\r\n";

$out .= "Accept-Language: zh-cn\r\n";

$boundary = $encodetype == 'URLENCODE' ? '' : ';'.substr($post,trim(strpos($post,"\n")));

$out .= $encodetype == 'URLENCODE' ? "Content-Type: application/x-www-form-urlencoded\r\n" : "Content-Type: multipart/form-data$boundary\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.0\r\n";

$out .= "Accept: */*\r\n";

$out .= "Accept-Language: zh-cn\r\n";

$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";

$out .= "Host: $host\r\n";

$out .= "Referer: \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 '';

} else {

stream_set_blocking($fp,$block);

stream_set_timeout($fp,$timeout);

@fwrite($fp,$out);

$status = stream_get_Meta_data($fp);

if(!$status['timed_out']) {

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);

return $return;

}

}

/*** 来自编程之家 jb51.cc(jb51.cc) ***/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值