当前位置:  编程技术>php
本页文章导读:
    ▪php 判断上传文件大小的示例代码      代码如下: <?php /** * 判断上传文件大小 * edit www. */ function imageUpload() { if (is_uploaded_file($_FILES['logo']['tmp_name'])) { //$_FILES是一个关于图片信息的数组 $upfile = ($_FILES["logo"]); //赋.........
    ▪php 十六进制转化为二进制的代码      php进制转换,十六进制转为二进制,代码: <?php /** * 十六进制转为二进制 * edit by www. */ function hex2bin($h) { if (!is_string($h)) return null; $r=''; for ($a=0; $a<strlen($h); $a+=2) { $r.=chr(hexd.........
    ▪php 数组 (Arrays)的用法浅析      一,php数组的定义 php数组表示一组相关联的数据。 在 PHP 中,用 array() 定义一个数组。 例子: <html> <body> <?php $a = array("orange", "apple","peach"); echo $a[0]; ?> </body> </html&.........

[1]php 判断上传文件大小的示例代码
    来源: 互联网  发布时间: 2013-12-24

代码如下:

<?php
/**
* 判断上传文件大小
* edit www.
*/

function imageUpload()
{
if (is_uploaded_file($_FILES['logo']['tmp_name'])) {
    //$_FILES是一个关于图片信息的数组
    $upfile = ($_FILES["logo"]); //赋值
    $suffix=substr($upfile["name"],strrpos($upfile["name"],"."));
    $name = mktime() .rand().$suffix; //原文件名
    $type = $upfile["type"]; //文件类型
    $size = $upfile["size"]; //文件大小
    $tmp_name = $upfile["tmp_name"]; //临时文件名
    $error = $upfile["error"]; //上传相关错误代码
   $str=getimagesize($tmp_name); 
 
   $mode="/width=\"(.*)\" height=\"(.*)\"/";
    preg_match($mode,$str[3],$arr);
    if($arr[1]>120 || $arr[2]>60){

echo "<script>alert('图片过大');</script>";
exit();
    }
       
    switch ($type) {
case 'image/pjpeg' :
    $ok = 1;
    break;
case 'image/jpeg' :
    $ok = 1;
    break;
case 'image/gif' :
    $ok = 1;
    break;
    //case 'image/x-png' :
    //    $ok = 1; //IE为x-png;FOX为png
    //    break;
    }
    if ($ok && $error == '0') {
       move_uploaded_file($tmp_name, "c:/" . $name);
       return $name;
    }
} else {
    return null;
}
}
?>

    
[2]php 十六进制转化为二进制的代码
    来源: 互联网  发布时间: 2013-12-24

php进制转换,十六进制转为二进制,代码:

<?php
/**
* 十六进制转为二进制
* edit by www.
*/
function hex2bin($h)
{
   if (!is_string($h)) return null;
   $r='';
   for ($a=0; $a<strlen($h); $a+=2) { $r.=chr(hexdec($h{$a}.$h{($a+1)})); }
       return $r;
   }
?>

下面介绍下,php 实现进制转换(二进制、八进制、十六进制)互相转换的方法。

1,从十进制向其它进制转换,判断该数字不断除以要转换的进制数,读取余数,连接一起即可。
代码:

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

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

代码:

<?php 
/**
 *二进制、八进制、十六进制 转十进制
 * edit by www.
 *
 * @param array $datalist 传入数据array(df,ef)
 * @param int $bin 转换的进制可以是:2,8,16
 * @return array 返回数据 array() 返回没有数据转换的格式
 */
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()等。
通过本文,带给大家一个实现php中进制转换的思路,希望对大家有所帮助。


    
[3]php 数组 (Arrays)的用法浅析
    来源: 互联网  发布时间: 2013-12-24

一,php数组的定义

php数组表示一组相关联的数据。

在 PHP 中,用 array() 定义一个数组。
例子:

<html>
<body>
<?php
$a = array("orange", "apple","peach");
echo $a[0];
?>
</body>
</html>

其中,$a = array("orange", "apple","peach"); 定义了一个数组变量,该数组有三个数据。

数组的每个值之间用逗号分隔。

下面的语句echo $a[0] 表示输出数组的第一个值,即"orange"。
注意,数组是以0为基数,而不是1。数组变量方括号 [] 里的值,我们称为数组的索引 key。
数组是 key-value 一一对应的组合

数组的基本单位是元素 (elements)。每个元素由一对索引(key,也称为“键”) 和值(value) 组成。

每个值,都有一个相对应的索引 (key)。通过指明数组的 key,我们获取相对应的值,比如 $a[0]。

前面示例的数组定义方法,是数组定义的一种简写方式,没有定义数组每个值的 key。
在缺省情况下,如果不定义数组每个值的 key,key 就从 0 开始每次自动加 1。

$a = array("orange", "apple","peach");
$a = array(0=>"orange", 1=>"apple",2=>"peach");

上面两句代码效果是一样的,第一句没有指定数组的 key,系统就自动给数组的每个值加 key,key 的值从0开始每次加1。第二句代码,是在定义数组的时候,给数组的每个
值加赋予对应的key。

定义数组中一对 key-value 的写法是:key=>value,比如 0=>"orange"表示 key 为 0,对应的值为 "orange"。

指定 key 比不指定 key 的写法虽然复杂,但是也给予你设定 key 的自由度,你可以随意设定数组每个值的key。
比如:

<html>
<body>
<?php
$a = array(1=>"orange", 3=>"apple",5=>"peach");
echo $a[1];
?>
</body>
</html>

另外,数组的 key 还可以用字符串表示。注意:用字符串作 key,在指明 key 的时候,要加引号。
比如:

<html>
<body>
<?php
$a = array("os"=>"Windows XP", "lang"=>"Chinese","sp"=>"Service Pack 3");
echo $a["os"],"<br />";
echo $a["lang"],"<br />";
echo $a["sp"];
?>
</body>
</html>

注:key 只能是整数和字符串。

定义数组还可以有另外一种方法,如下例:

$a["os"] ="Windows XP";
$a["lang"] ="Chinese";
$a["sp"]="Service Pack 3";

效果和$a = array("os"=>"Windows XP", "lang"=>"Chinese","sp"=>"Service Pack 3");一样。

二,修改数组

1,增加一个数组元素的语法:
$array_name[key] = value

2,删除一个数组元素,使用 unset 函数,语法如下:
unset($array_name[key])

增加和删除一个数组元素的示例如下,其中$a["c"] = 300;
表示增加一个 key 为 "c" ,值为300 的数组元素;unset($a["b"]);
表示删除一个 key 为 "b"的数组元素:

<html>
<body>
<?php
$a = array(a=>100, b=>200,d=>500);
$a["c"] = 300;  
unset($a["b"]);

foreach ($a as $key=> $value)
{
  echo $key.": ".$value."<br />";
}
?>
</body>
</html>

输出:
a: 100
d: 500
c: 300


    
最新技术文章:
▪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(请将#改为@)

浙ICP备11055608号-3