PHP 获取远程文件大小的3种解决方法

转 http://www.3lian.com/edu/2013/07-12/80472.html

以下是对PHP中获取远程文件大小的3种解决方法进行了详细的介绍,需要的朋友参考下

1、使用file_get_contents()

复制代码 代码如下:

<?php

$file = file_get_contents($url);

echo strlen($file);

?>

2. 使用get_headers()

复制代码 代码如下:

<?php

$header_array = get_headers($url, true);

$size = $header_array[‘Content-Length‘];

echo $size;

?>

PS:

需要打开allow_url_fopen!

如未打开会显示

Warning: get_headers() [function.get-headers]: URL file-access is disabled in the server configuration

3.使用fsockopen()

复制代码 代码如下:

<?php

function get_file_size($url) {

$url = parse_url($url);

if (empty($url[‘host‘])) {

return false;

}

$url[‘port‘] = empty($url[‘post‘]) ? 80 : $url[‘post‘];

$url[‘path‘] = empty($url[‘path‘]) ? ‘/‘ : $url[‘path‘];

$fp = fsockopen($url[‘host‘], $url[‘port‘], $error);

if($fp) {

fputs($fp, "GET " . $url[‘path‘] . " HTTP/1.1rn");

fputs($fp, "Host:" . $url[‘host‘]. "rnrn");

while (!feof($fp)) {

$str = fgets($fp);

if (trim($str) == ‘‘) {

break;

}elseif(preg_match(‘/Content-Length:(.*)/si‘, $str, $arr)) {

return trim($arr[1]);

}

}

fclose ( $fp);

return false;

}else {

return false;

}

}

?>

时间: 2024-08-11 05:27:33

PHP 获取远程文件大小的3种解决方法的相关文章

Python获取远程文件大小函数示例

分享一个Python获取远程文件大小的函数代码,简单实用,是学习python编程的基础实例. 代码: def getRemoteFileSize(url, proxy=None): """ 通过content-length头获取远程文件大小 url - 目标文件URL proxy - 代理 """ opener = urllib2.build_opener() if proxy: if url.lower().startswith('https:

php:undefined index的几种解决方法

平时用$_post[''],$_get['']获取表单中参数时会出现Notice: Undefined index: --------: 虽然可以通过设置错误显示方式来隐藏这个提示,但是这样也有隐患,就是在服务器的日志中会记录这些提示,导致日志文件异常庞大. 通过在网上搜索和自己自身的实战总结几种解决方法: 方法1:服务器配置修改 修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE 方法2:对变量进行初始化. 方法3:做判断isset($_post

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法 当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空” 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内

使用Powershell 的获取别的机器WMI类失败解决方法!

有些时候需要连接多台机器去获取他们的类,但是有些时候我们发现计算机无法连接,这个时候怎么办呢? 请修改组策略中以下配置: 可以使用Gpmc.msc 进行以后,本地计算机策略--计算机配置--管理模板--网络--网络连接--WIndow防火墙--允许远程管理启用 即可 截图如下: 使用Powershell 的获取别的机器WMI类失败解决方法!,布布扣,bubuko.com

php表单提交时获取不到post数据的解决方法

原文:http://blog.csdn.net/whd526/article/details/53263181 博主运行PHP环境:windows+phpstorm+xampp 初学php,用echo $_POST["variable"]和var_dump($_POST) 都获取不到post数据. 解决方法如下: 1.找到php.ini 配置文件,查找enable_post_data_reading变量,确保其打开状态: 2.观察你的运行php的浏览器地址,会发现在PhpStorm中打

Django的POST请求时因为开启防止csrf,报403错误,及四种解决方法

Django默认开启防止csrf(跨站点请求伪造)攻击,在post请求时,没有上传 csrf字段,导致校验失败,报403错误 解决方法1: 注释掉此段代码,即可. 缺点:导致Django项目完全无法防止csrf攻击 解决方法2: 在 views.py文件中 #导入,可以使此次请求忽略csrf校验 from django.views.decorators.csrf import csrf_exempt #在处理函数加此装饰器即可 @csrf_exempt def post(request): na

Mac下报错&#39;WARN security.UserGroupInformation: PriviledgedActionException as:用户名...No such file or directory&#39;的一种解决方法

Mac下使用IDEA远程连接Hadoop调试MapReduce程序,参考网上博客,总会出现如题报错,下面是我在mac下的一种解决办法,可以参考. 前期准备 如果想远程调试,需要做一些准备工作,简单罗列下. (1)在本地准备一份了hadoop(有博主直接从集群中copy一份),设置环境变量. # hadoop路径为具体路径export HADOOP_HOME=/Users/yangchaolin/hadoop2.6.0/hadoop-2.6.0-cdh5.14.0 (2)IDEA工程下,将本地ha

mysql主从数据库不同步的2种解决方法(转)

今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlo

iOS Mac忘记登录密码的4种解决方法

4种方法: 一.使用Apple ID重置用户账户密码 使用这个方法有一个前提 如上图红框,此项必须勾选,否则无法使用Apple ID重置密码.(如果你不记得有没有勾选,则你起码要记得首次启动 OS X 或装有 OS X Lion 或更高版本的全新 Mac 时,你会进入“OS X 设置助理”,其中需要你输入 Apple ID.输入 Apple ID 后,请在“创建您的帐户”阶段选择“允许我的 Apple ID 重设此用户的密码”选项.) 好了,来说下具体实现的方法: 如果您在登录窗口错误输入帐户密