PHP 5.3与5.5废弃/过期函数整理
做PHP的相信都知道,从PHP5.3开始加入了一个新的报错级别DEPRECATED,即将废弃/过期。我们一个个版本来过。
在php5.3被放弃的函数有:
代码如下 | 复制代码 |
call_user_method() (使用 call_user_func() 替代) mysql_close(); // 将不支持全部关闭, 需要改为:mysql_close($link); |
废弃以字符串传递区域设置名称. 使用 LC_* 系列常量替代.
mktime() 的 is_dst 参数. 使用新的时区处理函数替代.
PHP 5.4
代码如下 | 复制代码 |
mcrypt_generic_end() |
PHP 5.5
代码如下 | 复制代码 |
mcrypt_cbc() mcrypt_cfb() mcrypt_ecb() mcrypt_ofb() |
其中,PHP 5.3是废弃函数的开始,很多常用的以前的正则ereg全部替换preg,这个还好我以前知道。都替换了,但是魔术引号。。居然也从PHP 5.3开始弃用,PHP 5.4就移除了。这个算是PHP 5.3的一个大变动吧。
PHP 5.4开始新增了很多特性,这个大家可以网上搜索下,新增很多特殊写法。可能按照新写法,老程序员就看不太懂啦~~~
PHP 5.5怎么说呢,今天才发现的~居然把MYSQL这个扩展去掉了,建议使用MYSQLI或者PDO。。。用了5.5很多程序都会报错,提示mysql_connect即将过期~~~会看到如下错误
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in E:testnew 6.php on line 6
PHP5相对于4的跨进最大的就是类的部分,而影响更多的就是废弃这些老习惯的东西吧。虽然版本一直在升级,但是终究市场上还是大量的5.1.6-5.2.17。5.3开始废弃很多特性,导致很多程序也不敢直接上,5.5.直接秒杀了大量开源呵呵~~~
确定了很多多维数组排序的函数与例子,但一直对于指定键值进行排序处理不好,今天就网上网罗了一大堆方法,下面整理一下防止以后使用,同时也希望对各位朋友会有所帮助。php多维数组排序可以用array_multisort() 函数来处理,array_multisort() 函数可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序,关联(string)键名保持不变,但数字键名会被重新索引
排序顺序标志:
SORT_ASC - 按照上升顺序排序
SORT_DESC - 按照下降顺序排序
排序类型标志:
SORT_REGULAR - 将项目按照通常方法比较
SORT_NUMERIC - 将项目按照数值比较
SORT_STRING - 将项目按照字符串比较
例子 1. 对多个数组排序
代码如下 | 复制代码 |
<?php var_dump($ar1); |
本例中经过排序后,第一个数组将包含 "10","a",100,100。第二个数组将包含 1,1,"2",3。第二个数组中的项目顺序完全和第一个数组中相应的项目(100 和 100)顺序一致。
但是这些都不可以指定由那个键值进行排名了,下面我就整理了几个函数算法都不错。
示例代码
代码如下 | 复制代码 |
/** |
例子二
代码如下 | 复制代码 |
function array_sort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; if ($type == 'asc') { asort($keysvalue); arsort($keysvalue); reset($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[] = $arr[$k]; return $new_array; |
例子3
代码如下 | 复制代码 |
/* |
例如有下列这样一个数组:
代码如下 | 复制代码 |
$array=array( 现在需要将这个二维数组按id升序排列,则: array_sort($array,'id','asc'); |
方法一:使用dir()遍历目录
dir()函数,成功时返回Directory类实例
PHP dir() 语法格式为:
dir(directory);//directory为需要显示文件名的目录名称,可包含路径信息
PHP dir() 用法举例:列出upload目录下的所有文件名:
代码如下 | 复制代码 |
<?php $dir = @ dir("upload");//打开upload目录;“@”可屏蔽错误信息,因有时候需要显示文件的目录内并没有文件,此时可能会报出错误,用“@”隐藏掉错误 //列举upload目录中的所有文件 while (($file = $dir->read()) !== false) { echo "文件名: " . $file . "<br />"; } $dir->close(); ?> |
输出结果为:
文件名: .
文件名: ..
文件名: logo.gif
文件名: arrow.gif
文件名: bg.gif
例子
代码如下 | 复制代码 |
function tree($dir) { $mydir = dir($dir); while($file = $mydir->read()) { if($file != '.' && $file != '..') { if(is_dir("$dir/$file")) { echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />'; tree("$dir/$file"); }else{ echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />'; } } } $mydir->close(); } tree('./phpmyadmin'); |
方法二 使用readir()遍历目录
定义和用法
readdir() 函数返回由 opendir() 打开的目录句柄中的条目。
若成功,则该函数返回一个文件名,否则返回 false。
语法
readdir(dir_stream)
例子
代码如下 | 复制代码 |
header('content-type:text/html;charset=utf-8'); function listDir($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while($file = readdir($handle)) { if($file != '.' && $file != '..') { if(is_dir($dir.DIRECTORY_SEPARATOR.$file)) { echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />'; listDir($dir.DIRECTORY_SEPARATOR.$file); }else{ echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />'; } } } } closedir($handle); }else{ echo '非有效目录!'; } } listDir('./phpmyadmin'); |
首先数据库的SQL如下:
代码如下 | 复制代码 |
-- -- 表的结构 `message` -- CREATE TABLE `message` ( `id` int(10) NOT NULL auto_increment, `user` varchar(25) character set utf8 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=11 ; |
程序代码如下:
首先创建config.php,代码如下:
代码如下 | 复制代码 |
<?php $conn = @mysql_connect("localhost","root","") or die("数据库连接出错!"); |
然后创建index.php,代码如下:
代码如下 | 复制代码 |
<form action="index.php" method="post"> <table border="1" align="center" > 用 www.111cn.net 户:<input type="text" name="user" /><br> <input type="submit" name="submit" value="php教程" /></table> </form> |
接受提交数据保存到数据表中
代码如下 | 复制代码 |
<?php include("config.php"); if($_POST['submit'] && !empty($_POST['title'])&& !empty($_POST['user'])&& !empty($_POST['content'])) { $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())"; mysql_query($sql); //echo "成功"; }?> |
查询留言记录
代码如下 | 复制代码 |
<table width=500 border="1" align="left" cellpadding="5" cellspacing="1" bgcolor="#add3ef"> <?php $sql="select * from message order by id desc"; $query=mysql_query($sql); while($row=mysql_fetch_array($query)){ ?> <tr bgcolor="#eff3ff"> <td>标题:<?php echo $row[title];?> 用户:<?php echo $row[user];?></td> </tr> <tr bgColor="#ffffff"> <td>内容:<?php echo $row[content];?></td> </tr> <?php } ?> |
原理分析
先来看看入库吧,这个就是最基础的没有进行任何数据判断处理了
代码如下 | 复制代码 |
if($_POST['submit'] && !empty($_POST['title'])&& !empty($_POST['user'])&& !empty($_POST['content'])) { $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())"; mysql_query($sql); //echo "成功"; }?> |
判断用户提交过来的数据是不是不为空
$_POST['submit'] && !empty($_POST['title'] && !empty($_POST['user'])&& !empty($_POST['content'] (这里主要是介绍到所有需要填写的不为空了)
安全分析,这个很容易给大家实现sql注入了,因为没进行任何过滤处理了哦,只要网随便搜索一段注入代码就可以成功注入了,同时可以重复无限提交数据
代码如下 | 复制代码 |
{ $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())"; |
这一是保存到数据库,但没进行任何安全处理,一般情况我们不提倡直接把$_POST[user]入库的,是需要经过处理之后再进入变量传递进行入库哦,
查询数据库
代码如下 | 复制代码 |
$sql="select * from message order by id desc"; |
这三句代码实现了数据库查询了,其实也是非常的简单的,我们只是处理了查询并没有任务一些技术处理,如判断是否有值或一次读取多少条记录。
php中json中文处理功能对于初学者来说是一个比较好用的函数,如果我们直接使用json处理函数来做你会发现中文会变成了null了,如果我们转换在uft8之后会显示的是中文的字符编码了,下面我整理两个工作中用到的函数,希望对各位有帮助。例子
代码如下 | 复制代码 |
function encodeConvert($str,$fromCode,$toCode) if(is_string($str)){ } |
例子
代码如下 | 复制代码 |
/************************************************************** |
测试例子
代码如下 | 复制代码 |
$arr = array ( array ( 'catid' => '4', 'catname' => '一聚教程网', 'meta_title' => '一聚教程网2' ), array ( 'catid' => '55', 'catname' => 'php教程', 'meta_title' => 'http://www.111cn.net', ) );
|
输出结果如下
[{"catid":"4","catname":"一聚教程网","meta_title":"一聚教程网2"},{"catid":"55","catname":"php教程","meta_title":"http://www.111cn.net"}]
[{"catid":"4","catname":"\u4e00\u805a\u6559\u7a0b\u7f51","meta_title":"\u4e00\u805a\u6559\u7a0b\u7f512"},{"catid":"55","catname":"php\u6559\u7a0b","meta_title":"http:\/\/www.111cn.net"}]
相关文章
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 这篇文章主要介绍了Bootstrap Table使用整理(二)的相关资料,需要的朋友可以参考下...2017-06-15
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
- strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
- free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
- PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
SQL Server中row_number函数的常见用法示例详解
这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08- 分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。 1.使用 PEAR 的...2015-10-21- 下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了C#虚函数用法,实例分析了C#中虚函数的功能与基本使用技巧,需要的朋友可以参考下...2020-06-25