分享
 
 
 

PHP一些小的问题收集

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

===========计算页面执行时间============

在PHP网页的开头加入以下

<?

$time_start = getmicrotime();

function getmicrotime()

{

list($usec, $sec) = explode(" ",microtime());

return ((float)$usec + (float)$sec);

}

?>

然后到最后加入以下代码

<?

$time_end = getmicrotime();

printf ("[页面执行时间: %.2f毫秒]\n\n",($time_end - $time_start)*1000);

?>

============php和access链接===========

<?

$dbc = new COM("ADODB.Connection");

$dbc->Open("driver=microsoft access driver (*.mdb);dbq=D:\PHP\PHPJJXX\db1.mdb");

$rs = $dbc->Execute("select * from 2");

$i = 0;

while (!$rs->EOF) {

$i += 1;

$fld0 = $rs->Fields(0);

$fld1 = $rs->Fields(1);

$fld2 = $rs->Fields(2);

print "$fld0->value $fld1->value $fld2->value<BR>";

$rs->MoveNext();

}

$rs->Close();

?>

=======PHP中比较值得推荐的数据验证的类==========

<?php

class checker{

// 函数定义

var $array_data=""; //要验证的数组数据

var $var_key=""; //当前要验证的数据的key

var $var_value=""; //当前要验证的数据的值

var $is_empty=""; //要验证的值可以为空

var $array_info=""; //提示信息收集

var $array_errors=array(); //错误信息收集

//--------------------->构造函数<------------

function checker($date){

$this->array_data=$date;

}

//--------------------->数据检验函数<-------------

function check($array_datas){

foreach($array_datas as $value_key => $value_v){

$temp1=explode('|',$value_v);

if($temp1[0]=="i_empty" and empty($this->array_data[$value_key])){

;

}else{

foreach($temp1 as $temp_key => $value_con){

//$data_temp=$this->array_data;

//var_dump($data_temp['birthday']);

//echo "--".$value_key."--<br>";

$this->var_key=$value_key;

$this->var_value=$this->array_data[$value_key];

$temp2=explode(':',$value_con);

switch(count($temp2)){

case 0:

$this->array_errors[$this->var_key]="此值的验证请求不存在";

break;

case 1:

//如果用户没有指定验证动作

if(empty($temp2[0])){

$this->array_errors[$this->var_key]="此值的验证请求不存在";

break;

}else{

$this->$temp2[0](); //如果返回值为非,就不用进行下一步验证

break;

}

case 2:

$this->$temp2[0]($temp2[1]);

break;

case 3:

$this->$temp2[0]($temp2[1],$temp2[2]);

break;

}

}

}

}

}

function i_empty(){

$this->is_empty=1; //这个值没什么用,只是说明要验证的值可以是空值

}

//日期数据、邮件地址、浮点数据、整数、IP地址、字符串、最大值、最小值、字符串长度、域名、URL

//-------------------->日期验证--------------------

function i_date(){

//约定格式:2000-02-01或者:2000-5-4

if (!eregi("^[1-9][0-9][0-9][0-9]-[0-9]+-[0-9]+$", $this->var_value)) {

$this->array_errors[$this->var_key]="日期格式错误";

return false;

}

$time = strtotime($this->var_value);

if ($time === -1) {

$this->array_errors[$this->var_key]="日期格式错误";

return false;

}

$time_e = explode('-', $this->var_value);

$time_ex = explode('-', Date('Y-m-d', $time));

for ($i = 0; $i < count($time_e); $i++) {

if ((int)$time_e[$i] != (int)$time_ex[$i]) {

$this->array_errors[$this->var_key]="日期格式错误";

return false;

}

}

return true;

}

//-------------------->时间验证--------------------

function i_time() {

if (!eregi('^[0-2][0-3](:[0-5][0-9]){2}$', $this->var_value)) {

$this->array_errors[$this->var_key]="时间格式错误";

return false;

}

return true;

}

//-------------------->email验证--------------------

function i_email(){

if(!eregi("^[0-9a-z~'!#$%&_-]([.]?[0-9a-z~!#$%&_-])*" .

"@[0-9a-z~!#$%&_-]([.]?[0-9a-z~!#$%&_-])*$", $this->var_value))

$this->array_errors[$this->var_key]="邮件格式错误<br>";

//echo $this->var_value;

return true;

}

//-------------------->浮点数验证--------------------

function i_float(){

//if(!is_float($this->var_value))

if(!ereg("^[1-9][0-9]?\.([0-9])+$",$this->var_value))

$this->array_errors[$this->var_key]="这不是一个小数";

}

//-------------------->字符串验证--------------------

function i_string(){

if(empty($this->var_value)) //允许为空

return true;

if(!is_string($this->var_value))

$this->array_errors[$this->var_key]="这不是一个字符串";

return true;

}

//-------------------->字符串长度验证--------------------

function len($minv,$maxv=-1){

$len = strlen($this->var_value);

if($len==0){

$this->array_errors[$this->var_key]="不能为空值";

return false;

}

if ($len < $minv) {

$this->array_errors[$this->var_key]="输入的串太短了";

return false;

}

if ($maxv != -1) {

if ($len > $maxv) {

$this->array_errors[$this->var_key]="输入的串太长了";

return false;

}

}

return true;

}

//-------------------->整数验证--------------------

function i_int(){

if(!ereg("^[0-9]*$",$this->var_value))

$this->array_errors[$this->var_key]="这不是一个整数";

}

//-------------------->IP地址验证--------------------

function i_ip(){

if(!ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$", $this->var_value)){

$this->array_errors[$this->var_key]="错误的IP地址";

}else{

//每个不大于255

$array_temp=preg_split("/\./",$this->var_value);

foreach($array_temp as $ip_value){

if((int)$ip_value >255)

$this->array_errors[$this->var_key]="错误的IP地址";

}

}

return true;

}

//-------------------->最大值验证--------------------

function i_max($maxv){

if($this->var_value >= $maxv){

$this->array_errors[$this->var_key]="数据值太大";

return false;

}

return true;

}

//-------------------->最小值验证--------------------

function i_min($minv){

if($this->var_value <= $minv){

$this->array_errors[$this->var_key]="数据值太小";

return false;

}

return true;

}

//-------------------->域名验证--------------------

function i_domain() {

if(!eregi("+.)+[0-9a-z-_]+$]^@([0-9a-z-_]+.)+[0-9a-z-_]+$", $this->var_value))

$this->array_errors[$this->var_key]="错误的域名";

return eregi("+.)+[0-9a-z-_]+$]^@([0-9a-z-_]+.)+[0-9a-z-_]+$", $this->var_value);

}

//-------------------->URL验证--------------------

function i_url(){

if(!eregi('^(+(.[a-z0-9]+)+$]http://|https://){1}[a-z0-9]+(.[a-z0-9]+)+$' , $this->var_value))

$this->array_errors[$this->var_key]="错误的WEB地址";

return true;

}

//-------------------->自定义正则校验--------------------

function check_own($user_pattern){

//自定义校验。出错返回false,匹配返回1,不匹配返回0

$tempvar=preg_match($user_pattern,$this->var_value);

if($tempvar!=1)

$this->array_errors[$this->var_key]="数据不合法";

}

######################### 类 the end ################################

}

//<----------------------------作用示例--------------------->

/*

//注意:如果允许一个值为空,则在验证数组前加上i_empty就行了。

//:前面第一个是验证函数,后面的都是参数

$rule_list = array(

'temp' =>'check_own:"+.)+[0-9a-z-_]+$"]^@([0-9a-z-_]+.)+[0-9a-z-_]+$"',

'time' => 'i_time',

'fload' => 'i_float|i_min:1|i_max:10.10|len:0:20',

'ipadr' => 'i_ip',

'url' =>'i_url',

'birthday' => 'i_date',

'email' => 'i_email|len:1:128',

'gender' => 'i_int|i_min:1|i_max:20',

'city' => 'i_string|len:1:32');

$rule_date = array(

'temp' => '@sina.com',

'time' => '23:59:00',

'fload' => '10.0',

'ipadr' => '251.255.1.1',

'url' => 'Https://www.gg',

'birthday' => '2004-5-4',

'gender' => '15',

'email' => 'tonerzhang@sohu.com',

'city' => 'Guangzhou');

$gg=new checker($rule_date);

$gg->check($rule_list);

print_r($gg->array_errors);

*/

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有