php编程技巧总结

本文档有php点点通,为你整理,欢迎上给我留言!

<?php

1.extract()函数的作用---通过标量函数将字符串键(key)设置成变量,然后将值赋给了这个变量

<?php

$a=$b=$c='';

$fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');

//通过标量函数将字符串键(key)设置成变量,然后将值赋给了这个变量

extract($fruits);

echo $a;

echo $b;n

echo $c;

?>

2 图片打乱

<?php

// echo '<img src="images/mm1.jpg" />'

//创建一个数组

$pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');

$a = array_rand($pic);

//数组进行随即打乱 //这个函数shuffle()很重要

shuffle($pic);

//多数组进行反向排序,array打头的函数,一般会创建一个新数组

$a = array_reverse($pic);

// print_r($a);

for ($i=0;$i<3;$i++) {

echo '<img src="images/'.$a[$i].'" style="margin:10px;" />';

echo "\n";

}

3 //使用时间戳计算时间差

4 6 7 $now = time(); //当前的时间戳 $wnow = mktime(0,0,0,8,16,2010); //两个时间戳相减可以得到差秒 echo round(($wnow - $now)/60/60,2).' Hour'; //将人可读的时间,字符串形式,转换成时间戳 $a = strtotime('2010-7-16 15:15:15')-strtotime('2010-7-16 15:15:00'); if ($a >= 60) { echo '请这位先生休息一会儿!'; } else { echo $a; } //获取当前时区, echo date_default_timezone_get(); echo '<br />'; //开始配置默认时区 date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s'); //及能够输出当前当地的时间 echo '<br />'; echo date_default_timezone_get(); //返回时间戳和微秒数

!!!----//怎样计算页面运行加载时间//---------------!!!

//页面打开的时候获取一个时间

//页面结束的时候获取一个时间

//用结束的时间减去打开的时间,那么就是运行时间

function fn() {

list($a,$b) = explode(' ',microtime());

return $a+$b; //返回出精确的秒数

}

//页面打开的时候,获取一个时间

$start_time = fn();

for($i=0;$i<10000000;$i++) {

//

}

//页面结束的时候,获取一个时间

$end_time =fn();

echo round(($end_time - $start_time),4); //页面运行加载的时间);

8 explode函数返回一个新数组(php切割) implode(链接) time()+(60*60*8)

9 time()//很有用处,可以过去和未来

echo date('Y-m-d H:i:s',time()+(60*60*8)); //很有用的

10 strpos() 函数返回字符串在另一个字符串中第一次出现的位置。 <?php strpos("Hello world!","wo"); ?> 输出:6

11

echo

/************mysql********************/

如果出现了乱码的话我们就先将文件另存为的格式转换为utf-8,然后导入就OK的了 进入cmd后

mysql -hlocalhost -uroot -p

然后按回车

enter password:root

进入 cmd 也可以设置数据库的字符集 方法: SET NAMES GBK || UTF-8;

SELECT ABS<-5>;

select ABS(-5); 括号必须要()的!!!

tinyint(2) 0-255 unsigned 表示两位短整型而且是无符号的

//查看表结构

mysql> desc grade; 简写形式

/******************mysql上面***************************************/

dreamweaver cs5代码提示 php代码提示 ctrl+H键

dreamweaver cs5快速复制行的方法:首先在行号上面点击该行,然后按ctrl+c,最后按ctrl+v就OK的了!!! 呵呵 看 是不是很方便啊!

在cmd中mysql -hlocalhost -uroot -proot 进去mysql

11.

/**使用SESSION魔术变量的时候必须一定要开启!

*

*

*/

<?php

session_start();

//创建随机码

$text = '123456789ABCDEFGHIJKLMNPQRSTUVWXYZ';

$str = NULL;

for($i = 0; $i < 4; $i++){

$str .= substr($text, rand(0, strlen($text) - 1), 1);

}

//保存在session

$_SESSION['code'] = $str;

12

/*输出变量的方法!可以用{}这里指的是在href中*/

echo "<a href='{$item->link}'>".$item->title."<br>";

12

CREATE TABLE users(

u_id int( 5 ) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY , //sql建表,中unsigned必须要放在前一位

username varchar( 25 ) NOT NULL ,

PASSWORD varchar( 20 ) NOT NULL ,

sex enum('m','f') default 'm', //这里是枚举类型,必须是这样的类型来定义的!

email varchar( 25 ) NOT NULL ,

avatar varchar( 50 ) NOT NULL ,

regtime int( 10 ) unsigned NOT NULL

);

13 /*php验证码的制作*/

//获取随机数字

for ($i=0; $i<3; $i++) {

$letter .= chr(mt_rand(48,57));

}

//获取随机字母

for ($i=0; $i<3; $i++) {

$letter .= chr(mt_rand(65,90));

}

//可以realpath(相对路径)函数找到其绝对路径!

14 //限制敏感字符(用户名注册)

$char_pattern ='/[<>\'\"\ \ ]/'; //正则的用法! 只要字符里面有这些字符出现的话就message()函数提示

if(preg_match($char_pattern,$_string)){

message("用户名不得包含敏感字符");

}

15 //这个函数配合使用用来转义和消除br,便于入库

htmlspecialchars(nl2br($string));htmlspecialchars即将<>转换这特殊字符

echo mysql_real_escape_string("This's a Teacher!"); //该函数也起转义作用,方便入库,只要转义的你入库的都可以这个函数来转义下

16{ if(!preg_match('/^[1-9]{1}[0-9]{4,9}$/',$_string)){} preg_match()函数对于正则很重要! '/^$/'标识即开头与结尾呼应起来

一.邮件验证

preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/',$_string)

当然,对于什么都没有填写的,就直接通过。

二.QQ验证

preg_match('/^[1-9]{1}[0-9]{4,9}$/',$_string)

三.网址验证

preg_match('/^https?:\/\/(\w+\.)?[\w\-\.]+(\.\w+)+$/',$_string)

}

17 三张表的内连接很重要! 就看那张表是主表就是在left做左边

$sql = "select * from blogs left join categories on blogs.c_id=categories.c_id

left join users on blogs.u_id=users.u_id

order by blogs.b_id desc limit $start,$perpage";

18 select语句顺序!很重要

select * from users +where + group by +order by + limit;

19:如何截取指定长度汉字而不会出现以"[/php]"结尾,超出部分以"..."代替

一般来说,要截取的变量来自Mysql,首先要保证那个字段长度要足够长,一般为char(200),可以保持100个汉字,包括标点.

PHP代码:--------------------------------------------------------------------------------

[php]

$str="这个字符好长呀,^_^";

$Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...

Echo "$Short_Str";

Function csubstr($str,$start,$len)

{

$strlen=strlen($str);

$clen=0;

for($i=0;$i<$strlen;$i++,$clen++)

{

if ($clen>=$start+$len)

break;

if(ord(substr($str,$i,1))>0xa0)

{

if ($clen>=$start)

$tmpstr.=substr($str,$i,2);

$i++;

}

else

{

if ($clen>=$start)

$tmpstr.=substr($str,$i,1);

}

}

return $tmpstr;

}

Function showShort($str,$len)

{

$tempstr = csubstr($str,0,$len);

if ($str<>$tempstr)

$tempstr .= "..."; //要以什么结尾,修改这里就可以.

return $tempstr;

}

--------------------------------------------------------------------------------

20.email 正则验证

$n = preg_match_all("/^\w{3,}@\w+(\.\w{2,}){1,4}$/",$email,$match);

 

第二篇:四川商会php技能培训中心学习总结(二)

四川商会php技能培训中心学习总结(二)

问题5:NTFS权限问题。

这个问题ASP上也出现过,不过换在PHP环境就没多一份心往这方面想,所以足足憋了我一上午,发现这个问题是在朋友的服务器上,前一天喝酒正好认识一个哥们儿遇到php建站的问题了,接着酒劲我就装了一把,说我php多牛多牛啊,知道的我才学2星期,哈哈哈,第二天就给人家解决问题吧,牛都吹出去了也不能不管人家,连上服务器一看原来是安装phpcms的时候遇到了MySQL问题安装无法继续进行了,百度上一顿神搜找到问题关键了是NTFS权限问题,这就好解决了,加个Internet来宾用户就解决了,估计自己以后也会遇到这问题,所以早遇到比晚遇到强,关键时候知道怎么回事儿!

问题6:Cookies读写问题。

这个问题应该不是很大的问题,只不过当天马上下班了,没有来得及解决,第二天很轻易的就搞定了,刚开始学习肯定语句掌握的不多,以为$_COOKIE["xxx"]既可以读也可以写呢,用到这儿的时候才发现部对路子,上网随便一搜“php cookies 写入”答案就来了,setcookie即可,真简单啊。

问题7:php分页。

用ASP的时候SQL语句也没深入研究,根本就不知道limit这回事儿,我说以前看淘宝、百度的分页上有0 20、20 20这样的参数传递呢,都是干分页用的,稍补了一堂SQL课程问题迎刃而解,页数判断那里原理都一样就没当成问题,一路绿灯解决战斗!

问题8:创建utf-8文件写入中文乱码问题,问题2的后续问题。

一开始就把这个功能做好了,只不过没用中文测试,后来做到有中文的地方发现这里不灵了,哎呀那个头疼啊,这个问题收拾了我好几天,一直没解决,为了不被这个问题困扰,所以就先用英文写入把这里条过去了,昨天必须得解决这里了,所以就硬下头皮整吧,还是BOM的签名问题,以下均为我自己理解,不知道对不对,Windows环境识别UTF-8与ANSI文件靠的是UTF-8文件前的一个叫做BOM签名的东西,这个东西普通的文本编辑器是看不到的 xEF xBF xEE好像是这三个16进制字符,反正是三个东西,问题2里毛病也是他们三个整出来的,UTF-8在Windows下虽然要用这三个家伙区分,在php下确实没有用的东西,要不问题2里面为啥要去掉BOM签名呢,怪就怪我在做ASP的时候遇到过同样的UTF-8文件写入中文乱码问题,所以就留了个心眼,先在网上艘了一个UTF-8文件在php写入的函数,里面就把那三个讨厌的东西加进去了,哎呀我去,这就是聪明反被聪明误,这顿调试就是不行啊,后来我也是恍然大悟,把这三个家伙去掉了,问题解决了,那个畅快啊。

还有很多小问题就不细说了,比如$的转义符是chr(36)啊,SQL中的关键词from啊(在asp中不是关键词),时间函数的使用(巨方便,比ASP的用着舒服)。

相关推荐