PHP 獲取遠(yuǎn)程文件大小的3種解決方法
更新時間:2013年07月11日 09:39:11 作者:
以下是對PHP中獲取遠(yuǎn)程文件大小的3種解決方法進(jìn)行了詳細(xì)的介紹,需要的朋友參考下
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;
}
}
?>
復(fù)制代碼 代碼如下:
<?php
$file = file_get_contents($url);
echo strlen($file);
?>
2. 使用get_headers()
復(fù)制代碼 代碼如下:
<?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()
復(fù)制代碼 代碼如下:
<?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;
}
}
?>
相關(guān)文章
PHP調(diào)用Linux的命令行執(zhí)行文件壓縮命令
一開始,我和普通青年一樣,想到用PHP內(nèi)置的 ZipArchive糾結(jié)的是環(huán)境上沒安裝zip擴(kuò)展,想采用用PHP調(diào)用Linux的命令行 ,執(zhí)行壓縮命令,感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01
PHP設(shè)計(jì)模式之委托模式定義與用法簡單示例
這篇文章主要介紹了PHP設(shè)計(jì)模式之委托模式定義與用法,簡單描述了委托模式的功能、定義與簡單使用方法,需要的朋友可以參考下2018-08-08
php實(shí)現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容完整實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容的方法,涉及php文件與目錄的遍歷、查找以及字符串與數(shù)組的遍歷與替換操作相關(guān)技巧,適用于utf-8編碼環(huán)境,需要的朋友可以參考下2016-07-07
ThinkPHP5+PhpSpreadsheet實(shí)現(xiàn)批量導(dǎo)出數(shù)據(jù)
由于PHPExcel不再維護(hù),所以建議使用PhpSpreadsheet來導(dǎo)出exlcel,但是PhpSpreadsheet由于是個新的類庫,所以只支持PHP7.1及以上的版本,本文給大家介紹了ThinkPHP5+PhpSpreadsheet實(shí)現(xiàn)批量導(dǎo)出數(shù)據(jù),需要的朋友可以參考下2024-10-10
PHP如何使用array_unshift()在數(shù)組開頭插入元素
這篇文章主要介紹了PHP如何使用array_unshift()在數(shù)組開頭插入元素,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
單臺服務(wù)器的PHP進(jìn)程之間實(shí)現(xiàn)共享內(nèi)存的方法
這篇文章主要介紹了單臺服務(wù)器的PHP進(jìn)程之間實(shí)現(xiàn)共享內(nèi)存的方法,需要的朋友可以參考下2014-06-06

