array_splice()函数
删除数组中从offset开始到offset+length 结束的所有元素,并以数组的形式返回所删除的元素。
其形式为:
array array_splice ( array array , int offset[,length[,array replacement]])
offset 为正值时,则接合将从距数组开头的offset 位置开始,offset 为负值时,接合将从距数组末尾的offset 位置开始。如果忽略可选的length 参数,则从offset 位置开始到数组结束之间的所有元素都将被删除。
如果给出了length 且为正值,则接合将在距数组开头的offset + leng th 位置结束。
相反,如果给出了length且为负值,则结合将在距数组开头的count(input_array)-length的位置结束。
例1:
<?php //接合数组 //by www. $fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon"); $subset = array_splice($fruits, 4); print_r($fruits); print_r($subset); // output // Array ( [0] => Apple [1] => Banana [2] => Orange [3] => Pear ) // Array ( [0] => Grape [1] => Lemon [2] => Watermelon ) ?>
可以使用可选参数replacement来指定取代目标部分的数组。
例2:
<?php //接合数组之可选参数replacement //by www. $fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon"); $subset = array_splice($fruits, 2, -1, array("Green Apple", "Red Apple")); print_r($fruits); print_r($subset); // output // Array ( [0] => Apple [1] => Banana [2] => Green Apple [3] => Red Apple [4] => Watermelon ) // Array ( [0] => Orange [1] => Pear [2] => Grape [3] => Lemon ) ?>
希望大家可以通过以上的二个例子,好好体会下array_splice在合并php数组上的应用。
首先,php 正则验证字符串是否为数字。
方法一:
在php中用正则验证是否为数字,很简单,掌握好基本的正则表达式即可。
例如:
<?php /** * 正则验证数字类型 * edit by www. */ if($str) { if(eregi("^[0-9]+$",$str)) { $str=(int)$str; } else { echo "获取到的数据不是有效的数字类型,操作将停止!"; exit(); } } else { echo "需要验证的数据为空,操作停止!"; exit(); } ?>
方法二:
对关键的参数必做过滤。
例如,数字正则过滤:
<?php if(preg_match(“/^\d*$/”,$fgid)) echo(‘是数字’); else echo(‘不是数字’); //注:$fgid为null 是为true 或用函数 if(is_numeric($fgid)) echo(‘是数字’); else echo(‘不是数字’); ?>
两种方法的区别:is_numeric小数也会认为是数字,而前面正则会把小数点当作字符。
常用的正则运算:
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&‘,;=?$\” 等字符:[^%&‘,;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:–正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?
在php编程中,合理使用php正则,有时真的会事半功倍,效果不是一般的好。
php中try catch的例子:
<?php try { if (@mysql_connect('localhost','root','123456')){ // echo 'success!'; }else{ throw new Exception('ERROR:'.mysql_error()); } } catch (Exception $e) { echo $e->getMessage(); } ?>
代码说明:
Try – 使用异常的函数应该位于 “try” 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
Throw – 这里规定如何触发异常。每一个 “throw” 必须对应至少一个 “catch”
Catch – “catch” 代码块会捕获异常,并创建一个包含异常信息的对象
当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 “catch” 代码块。
如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 “Uncaught Exception” (未捕获
异常)的错误消息。
就是这些了,建议大家在编写较大点的程序时,一定要做好错误或异常控制,养成良好的编程习惯。