十进制转二进制、八进制、十六进制 不足位数前面补零
<?php教程
/**
*十进制转二进制、八进制、十六进制 不足位数前面补零*
*
* @param array $datalist 传入数据array(100,123,130)
* @param int $bin 转换的进制可以是:2,8,16
* @return array 返回数据 array() 返回没有数据转换的格式
* @copyright chengmo qq:8292669
*/
function decto_bin($datalist,$bin)
{
static $arr=array(0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f');
if(!is_array($datalist)) $datalist=array($datalist);
if($bin==10)return $datalist; //相同进制忽略
$bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度
$aoutchar=array();
foreach ($datalist as $num)
{
$t="";
$num=intval($num);
if($num===0)continue;
while($num>0)
{
$t=$arr[$num%$bin].$t;
$num=floor($num/$bin);
}
$tlen=strlen($t);
if($tlen%$bytelen!=0)
{
$pad_len=$bytelen-$tlen%$bytelen;
$t=str_pad("",$pad_len,"0",str_pad_left).$t; //不足一个字节长度,自动前面补充0
}
$aoutchar[]=$t;
}
return $aoutchar;
}
目前我知道的方法有两种,一种是使用php的创始人 rasmus lerdorf 写的apc扩展模块来实现(http://pecl.php.net/package/apc),另外一种方法是使用pecl扩展模块uploadprogress实现(http://pecl.php.net/package/uploadprogress) 我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。
apc实现方法:
安装apc,参照官方文档安装,可以使用pecl模块安装方法快速简捷,这里不说明
配置php.ini,设置参数 apc.rfc1867=1 ,使apc支持上传进度条功能,在apc源码说明文档里面有说明
php文件上传进度条实现方法:安装apc,参照官方文档安装,可以使用pecl模块安装方法快速简捷,这里不说明 配置php.ini,设置参数 apc.rfc1867=1 ,使apc支持上传进度条功能,在apc源码说明文档里面有说明 代码范例:
if($_server['request_method']=='post'){//上传请求
$status=apc_fetch('upload_'.$_post['apc_upload_progress']);
$status['done']=1;
echojson_encode($status);//输出给用户端页面里的ajax调用,相关文档请自己寻找
exit;
}elseif(isset($_get['progress_key'])){//读取上传进度
$status=apc_fetch('upload_'.$_get['progress_key']);
echojson_encode($status);
exit;
}else{
//其他代码,比如上传表单等
}
uploadprogress 模块实现方法:使用pecl模块安装方法安装该模块的php文件上传进度条实现方法 php.ini里面设置 uploadprogress.file.filename_template = "/tmp/upd_%s.txt"
if($_server['request_method']=='post'){
if(is_uploaded_file($_files['upfile']['tmp_name'])){
$upload_dir='your_path/';
$ext=strrchr($_files['video']['name'],'.');
$sessid=$_post['upload_identifier'];
$tmpfile=$upload_dir.$sessid;
$sessfile=$upload_dir.$sessid.$ext;
if(move_uploaded_file($_files['upfile']['tmp_name'],$tmpfile)){
//上传成功
}else{
//上传失败
}else{
//上传错误
}elseif(!empty($_get['sessid'])){
header("expires:mon,26jul199705:00:00gmt");
header("last-modified:".gmdate("d,dmyh:i:s")."gmt");
header("cache-control:no-store,no-cache,must-revalidate");
header("cache-control:post-check=0,pre-check=0′,false);
header("pragma:no-cache");
header("content-type:text/html;charset=utf-8′);
$unique_id=$_get['sessid'];
$uploadvalues=uploadprogress_get_info($unique_id);
if(is_array($uploadvalues)){
echo json_encode($uploadvalues);
}else{
//读取进度失败,另外处理逻辑
}
}else{
//显示上传表单
}
pecl扩展模块uploadprogress实现。
基于php的ajax技术的具体应用解析
php限制上传文件大小的具体解决办法
php批量上传图片的具体实现方式
php动态多文件上传的具体代码分享
php通用文件上传类的具体解析 我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。
apc的php文件上传进度条实现方法:
安装apc,参照官方文档安装,可以使用pecl模块安装方法快速简捷
文章提供一款php检测文件类型(根据文件header信息)哦,他可以根据用户发布的文件头部信息来确实文件的类型。代码如下 | 复制代码 |
<?php /*通过文件名,获得文件类型* *@author chengmo* *@copyright cnblog.com/chengmo 2010-10-17 *@version 0.1 *$filename="d:/1.png";echo cfiletypecheck::getfiletype($filename); 打印:png */ class cfiletypecheck { private static $_typelist=array(); private static $checkclass=null; private function __construct($filename) { self::$_typelist=$this->gettypelist(); } /** *处理文件类型映射关系表* * * @param string $filename 文件类型 * @return string 文件类型,没有找到返回:other */ private function _getfiletype($filename) { $filetype="other"; if(!file_exists($filename)) throw new exception("no found file!"); $file = @fopen($filename,"rb"); if(!$file) throw new exception("file refuse!"); $bin = fread($file, 15); //只读15字节 各个不同文件类型,头信息不一样。 fclose($file); $typelist=self::$_typelist; foreach ($typelist as $v) { $blen=strlen(pack("h*",$v[0])); //得到文件头标记字节数 $tbin=substr($bin,0,intval($blen)); ///需要比较文件头长度 if(strtolower($v[0])==strtolower(array_shift(unpack("h*",$tbin)))) { return $v[1]; } } return $filetype; } /** *得到文件头与文件类型映射表* * * @return array array(array('key',value)...) */ public function gettypelist() { return array(array("ffd8ffe1","jpg"), array("89504e47","png"), array("47494638","gif"), array("49492a00","tif"), array("424d","bmp"), array("41433130","dwg"), array("38425053","ps教程d"), array("7b5c727466","rtf"), array("3c3f786d6c","xml"), array("68746d6c3e","html"), array("44656c69766572792d646174","eml"), array("cfad12fec5fd746f","dbx"), array("2142444e","pst"), array("d0cf11e0","xls/doc"), array("5374616e64617264204a","mdb"), array("ff575043","wpd"), array("252150532d41646f6265","eps/ps"), array("255044462d312e","pdf"), array("e3828596","pwl"), array("504b0304","zip"), array("52617221","rar"), array("57415645","wav"), array("41564920","avi"), array("2e7261fd","ram"), array("2e524d46","rm"), array("000001ba","mpg"), array("000001b3","mpg"), array("6d6f6f76","mov"), array("3026b2758e66cf11","asf"), array("4d546864","mid")); } public static function getfiletype($filename) { if(!self::$checkclass) self::$checkclass=new self($filename); $class=self::$checkclass; return $class->_getfiletype($filename); } } |
header("pragma:no-cachern");
header("cache-control:no-cachern");
header("expires:0rn");
$rmurl = "http://www.111cn.net/demodata.txt";
$infostring = file_get_contents($rmurl) or die("连接远程网址失败!");
$infos = split(',',$infostring);
$maxnum =count($infos);
$rmurl = trim($infos[rand(0,$maxnum-1)]);
$zipbin = file_get_contents($rmurl);
$fp = fopen(dirname(__file__).'/dedev56demo.zip','w');
fwrite($fp,$zipbin);
unset($zipbin);
fclose($fp);
下面我收藏了三php删除文件哦,他可以利用unlink删除任何可删除的文件,本程序要删除文件,图片,压缩文件等,我们利用了几种方法来实例
三种php删除文件代码
代码如下 | 复制代码 |
if($od=opendir($d)) //$d是目录名 去了解下这三个php函数:opendir() readdir() unlink() |
文件删除代码二 系统调用法
代码如下 | 复制代码 |
function del_dir($dir) { if(strtoupper(substr(php_os, 0, 3)) == 'win') { $str = "rmdir /s/q " . $dir; } else { $str = "rm -rf " . $dir; } } |
文件删除代码三
代码如下 | 复制代码 |
$info = "a123"; //目录名 if(is_dir($info)){ if(rmdir($info)){ echo "目录{$inof}删除完毕www.111cn.net"; }else{ echo "目录无法删除!原因--可能是目录下还存在文件!"; } } if(is_file($info)){ if(unlink($info)){ echo "文件{$info}删除完毕...!"; }else{ echo "文件{$info}mb.111cn.net删除失败...!尝试修改文件权限删除..."; if(chmod($info,0777)){ unlink($info); echo "文件{$info}权限修改后删除完毕..."; }else{ echo "文件{$info}无法通过web方式删除,可能是ftp权限对此文件有所设置..."; } } } |
最近发现很多网站转载本站文件,注请加上本站连接,谢谢合作!
相关文章
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 这篇文章主要介绍了R语言-切换科学计数法和更换小数点位数的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- c#下进制互转代码...2020-06-25
- 这篇文章主要介绍了Python 强制限定小数点位数的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- <?php教程 /** *十进制转二进制、八进制、十六进制 不足位数前面补零* * * @param array $datalist 传入数据array(100,123,130) * @param int $bin 转换的...2016-11-25
- 这篇文章主要介绍了C#十六进制字符串转十进制int的方法,涉及C#操作数制转换的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇protobuf对象二进制序列化存储(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
复制代码 代码如下:<?php function hex2rgb($colour) { if ($colour [0] == '#') { $colour = substr ( $colour, 1 ); } if (strlen ( $colour ) == 6) { list ( $r, $g,...2013-10-04- 这篇文章主要给大家介绍了C++中输出十六进制形式的字符串,文中给出了详细的介绍,有需要的朋友可以参考借鉴,下面来一起看看吧。...2020-04-25
- 这篇文章主要介绍了R语言 小数点位数的设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 在当前目录创建一个文件myfile.txt,对该文件具有读写权限...2020-06-25
- 这篇文章主要介绍了C#中图片、二进制与字符串的相互转换方法,涉及C#针对不同数据类型的解析与转换操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Python如何读写二进制数组数据,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-08-02
- 这篇文章主要介绍了C#实现的基于二进制读写文件操作,结合具体实例形式分析了C#以二进制文件流形式针对文件进行读写操作的相关技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章介绍了C++ 十进制转换为二进制的实例代码,有需要的朋友可以参考一下...2020-04-25
- 这篇文章主要介绍了详解C++中十六进制字符串转数字(数值)的相关资料,这里提供两种实现方法,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C++二进制翻转,通过几个实例分析二进制翻转算法的实现技巧,需要的朋友可以参考下...2020-04-25
- 本篇文章对c语言中十六进制转二进制显示的实现方法进行了详细的分析介绍,需要的朋友参考下...2020-04-25
- 这篇文章主要介绍了asp.net实现图片以二进制流输出的两种方法,以简单实例形式分析了asp.net实现以二进制流形式读写图片文件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2021-09-22
- 这篇文章主要介绍了位运算实现十进制转换为二进制的相关资料,需要的朋友可以参考下...2020-04-25