当前位置:  编程技术>php
本页文章导读:
    ▪php 实现二进制、八进制、十六进制的互相转换      本文介绍的内容为:php 实现二进制、八进制、十六进制的互相转换,有需要的朋友可以参考下。 一、十进制转换为二进制、八进制、十六进制 从十进制向其它进制转换,用的是就用该数字.........
    ▪检测php文件是否有bom头的代码      检测php文件是否有bom头的代码,有需要的朋友可以参考下,或许可以帮到你呢。   代码如下: <? //此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 //By Bob Shen $basedir="."; //.........
    ▪php 获取栏目的所有子级和孙级栏目的ID号的代码      PHP 获取栏目的所有子级和孙级栏目的ID号的代码,有需要的朋友可以参考下。 在无限栏目分类中,有时需要调用某个栏目的子栏目和孙子栏目以及曾孙栏目等。 这里为大家提供一代码,可以.........

[1]php 实现二进制、八进制、十六进制的互相转换
    来源: 互联网  发布时间: 2013-12-24

本文介绍的内容为:php 实现二进制、八进制、十六进制的互相转换,有需要的朋友可以参考下。

一、十进制转换为二进制、八进制、十六进制
从十进制向其它进制转换,用的是就用该数字不断除以要转换的进制数,读取余数。连接一起就可以了。
 

代码如下:

<?php
    /**
     *十进制转二进制、八进制、十六进制 不足位数前面补零*
     *
     * @param array $datalist 传入数据array(100,123,130)
     * @param int $bin 转换的进制可以是:2,8,16
     * @return array 返回数据 array() 返回没有数据转换的格式
     * @Author chengmo QQ:8292669
         
    * @copyright http://www.cnblogs.com/chengmo
     */
    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;
    }

    测试:
    var_dump(decto_bin(array(128,253),2));
    var_dump(decto_bin(array(128,253),8));
    var_dump(decto_bin(array(128,253),16));

    X-Powered-By: PHP/5.2.0
    Content-type: text/html

    array(2) {
      [0]=>
      string(8) "10000000"
      [1]=>
      string(8) "11111101"
    }
    array(2) {
      [0]=>
      string(4) "0200"
      [1]=>
      string(4) "0375"
    }
    array(2) {
      [0]=>
      string(2) "80"
      [1]=>
      string(2) "FD"
    }

二、二进制、八进制、十六进制转十进制
这个转换用乘法,如:1101 转十进制:1*2^3+1*2^2+0*2^1+1*2^0
 

代码如下:

<?php
    /**
     *二进制、八进制、十六进制 转十进制*
     *
     * @param array $datalist 传入数据array(df,ef)
     * @param int $bin 转换的进制可以是:2,8,16
     * @return array 返回数据 array() 返回没有数据转换的格式
     * @copyright chengmo QQ:8292669
     */
    function bin_todec($datalist,$bin)
    {
        static $arr=array('0'=>0,'1'=>1,'2'=>2,'3'=>3,'4'=>4,'5'=>5,'6'=>6,'7'=>7,'8'=>8,'9'=>9,'A'=>10,'B'=>11,'C'=>12,'D'=>13,'E'=>14,'F'=>15);
        if(!is_array($datalist))$datalist=array($datalist);
        if($bin==10)return $datalist; //为10进制不转换
        $aOutData=array(); //定义输出保存数组
        foreach ($datalist as $num)
        {
            $atnum=str_split($num); //将字符串分割为单个字符数组
            $atlen=count($atnum);
            $total=0;
            $i=1;
            foreach ($atnum as $tv)
            {
                $tv=strtoupper()($tv);
                
                if(array_key_exists($tv,$arr))
                {
                    if($arr[$tv]==0)continue;
                    $total=$total+$arr[$tv]*pow($bin,$atlen-$i);
                }
                $i++;
            }
            $aOutData[]=$total;
        }
        return $aOutData;
    }

    测试:
    var_dump(bin_todec(array('ff','ff33','cc33'),16));
    var_dump(bin_todec(array('1101101','111101101'),2));
    var_dump(bin_todec(array('1234123','12341'),8));

    X-Powered-By: PHP/5.2.0
    Content-type: text/html

    array(3) {
      [0]=>
      int(255)
      [1]=>
      int(65331)
      [2]=>
      int(52275)
    }
    array(2) {
      [0]=>
      int(124)
      [1]=>
      int(508)
    }
    array(2) {
      [0]=>
      int(342099)
      [1]=>
      int(5345)
    }

php其实内置不少函数可以完成这些内容:
bindec(),decoct(),dechex() base_convert() decbin() 这里只是实现思路。


    
[2]检测php文件是否有bom头的代码
    来源: 互联网  发布时间: 2013-12-24

检测php文件是否有bom头的代码,有需要的朋友可以参考下,或许可以帮到你呢。
 

代码如下:

<?
//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除
//By Bob Shen

$basedir="."; //修改此行为需要检测的目录,点表示当前目录
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。

//以下不用改动
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
}
closedir($dh);
}

function checkBOM ($filename) {
global $auto;
$contents=file_get_contents($filename);
$charset[1]=substr($contents, 0, 1);
$charset[2]=substr($contents, 1, 1);
$charset[3]=substr($contents, 2, 1);
if (ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191) {
if ($auto==1) {
$rest=substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>BOM found, automatically removed.</font>");
} else {
return ("<font color=red>BOM found.</font>");
}
}
else return ("BOM Not Found.");
}

function rewrite ($filename, $data) {
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>

您可能感兴趣的文章:
PHP实例:检测并清除文件开头的BOM信息
Php批量去除bom头信息的实现代码
php去掉bom头的代码分享
PHP 过滤页面中的BOM数据的简单实例
批量清除php文件中bom的方法
检查并清除php文件中bom的函数
有关 UTF-8 BOM 导致样式错乱的解决方法
BOM与DOM的区别分析
有关UTF-8 编码中BOM的检测与删除


    
[3]php 获取栏目的所有子级和孙级栏目的ID号的代码
    来源: 互联网  发布时间: 2013-12-24

PHP 获取栏目的所有子级和孙级栏目的ID号的代码,有需要的朋友可以参考下。

在无限栏目分类中,有时需要调用某个栏目的子栏目和孙子栏目以及曾孙栏目等。
这里为大家提供一代码,可以实现这个需求。
 

代码如下:

<?php
/***
 @ 获取子栏目ID号
 @ www.
 @ 2013/2/26
*/
private function sonCategoryIds($categoryID)
{
    //@初始化栏目数组
    $array[] = $categoryID;
   
    do
    {
        $ids = '';
        $temp = $this->mysql->select('SELECT `id` FROM `pcb_article_category` WHERE `parentID` IN (' . $categoryID . ')');
        foreach ($temp as $v)
        {
            $array[] = $v['id'];
            $ids .= ',' . $v['id'];
        }
        $ids = substr($ids, 1, strlen($ids));
        $categoryID = $ids;
    }
    while (!empty($temp));

    $ids = implode(',', $array);
   
    return $ids;
}
?>


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

linux iis7站长之家