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

2019-10-08 08:53:01来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

php中,文件大小可以通过file size函数获得,在php中获取文件大小和文件创建时间的方法涉及到在php中使用file size和fileatime函数的技巧,下文是爱站技术频道小编给出的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.1\r\n");
???????? fputs($fp, "Host:" . $url['host']. "\r\n\r\n");

???????? 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;
???? }
?}
??>

以上就是PHP 获取远程文件大小的3种解决方法,如果你也想找一个靠谱的学习平台,请一定要先考察好,专业的知识你也可以收藏爱站技术频道!


原文链接:https://js.aizhan.com/develop/php/9329.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:PHP之访问控制的和运算符优先级的实际操作

下一篇:详解Nginx + PHP 缓存的区别