本文目录一览:
- 1、php将代码越写越少要注意的一些细节和经验有哪些?
- 2、学习PHP有什么技巧吗?有捷径吗?
- 3、提高PHP开发效率的技巧
- 4、学PHP的技巧
- 5、解决DEDECMS历史难题--找后台目录
- 6、PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
php将代码越写越少要注意的一些细节和经验有哪些?
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 2、$row[’id’] 的速度是$row[id]的7倍。 3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。 4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。 5、注销那些不用的变量尤其是大数组,以便释放内存。 6、尽量避免使用__get,__set,__autoload。 7、require_once()代价昂贵。 8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。 9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()
学习PHP有什么技巧吗?有捷径吗?
打开电脑、配置解析好PHP环境,然后努力的敲代码
2
在敲代码的同时多想想,怎样才不回重复工作,怎样才能提高工作效率。
3
用心、坚持。加油。熟能生巧,坚持,用心是唯一的办法
提高PHP开发效率的技巧
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
2、$row[’id’] 的速度是$row[id]的7倍。
3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。
5、注销那些不用的变量尤其是大数组,以便释放内存。
6、尽量避免使用__get,__set,__autoload。
7、require_once()代价昂贵。
8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。
9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。
10、函数代替正则表达式完成相同功能。
11、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
学PHP的技巧
学习任何语言最重要的是基础,包括原理,语法,算法和好的习惯等,可以尝试看别人的代码,弄清楚别人和你实现的方法不同点,为什么要这么写,它的好处坏处
时间长了,自然厚积薄发
解决DEDECMS历史难题--找后台目录
详细分析见文章:
关键点:
文章提供了一个php的exp,评论区也有其他的exp,我简单搞了一下py脚本,有点拙劣,但还算能用:
然后还有一个奇淫技巧,就是当我们上传一个shell被重命名的时候,我们可以利用文件包含和通配符 或者 来包含shell,从而达到getshell的目的。
新建两个文件,5149ff33ebec0e6ad37613ea30694c07.php、demo.php。
访问 ;lt ,即可成功包含5149ff33ebec0e6ad37613ea30694c07.php文件。
参考: 奇技淫巧 | 读DEDECMS找后台目录有感
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
本文实例讲述了PHP日期与时间操作技巧。分享给大家供大家参考,具体如下:
Demo1.php
?php
//验证时间
//checkdate()
1.月份
2.日
3.年
//checkdate()
判断这个日期是否是合法的日期
//不合法的日期,试一试
if(checkdate(7,16,2010)){
echo
'这个日期是合法有效的';
}else{
echo
'这个日期是非法的。';
}
?
Demo2.php
?php
//date
--
格式化一个本地时间/日期
//date(),
彻底研究一下
//date()
可以存放两个参数,第一参数是日期和时间的格式化,[第二参数是时间戳]
//Y
表示四位数的年份,
y表示二位数的年份
//M
表示英文的月份缩写,m
表示阿拉伯数字的月份
//D
表示英文下的星期几缩写,d
表示阿拉伯数字的日
//第一个参数的格式化可以放一些无关紧要的字符串
//只要无关紧要的字符串不再
format
的目录里,就不会被识别
//echo
date('现在的日期是:Y-m-d');
//现在的日期是:2015-04-20
//时分秒
=
H
表示24小时制的小时,
//明明是
19
,为什么显示
11
点呢,东八区,差
8
个小时
//现在没有经过任何设置,所以时间在默认时区上
//echo
date('现在的日期是:Y-m-d
H:i:s');
//重点是年月日,时分秒
echo
date('r');
echo
date('现在的日期是:Y-m-d
H:i:sa');
?
Demo3.php
?php
//取得当前的时间,返回一个数组
//"sec"
-
自
Unix
纪元起的秒数
//"usec"
-
微秒数
//"minuteswest"
-
格林威治向西的分钟数
//"dsttime"
-
夏令时修正的类型
//print_r(gettimeofday());
//第一数组的元素就是时间戳
//gettimeofday()
就是取得的当前时间的时间戳
//$a
=
gettimeofday();
//sec
取得当前时间的时间戳
//转换成人可以看得懂的时间
//第二个参数,对于本例来讲,放与不放,是一样的。
//echo
date('Y-m-d
H:i:s',$a['sec']);
print_r(gettimeofday(0));
echo
gettimeofday(1);
?
Demo4.php
?php
//将时间戳转换成人可以看的懂的时间
//date()
函数的第二个参数就是时间戳
//如果第二个参数省略了,那么就返回当前时间
//如果第二个参数没有省略,那么就返回那个时间戳的时间
echo
date('Y-m-d
H:i:s',24554457865);
?
Demo5.php
?php
//getdate()
也可以转换时间戳
//print_r(getdate());
//Array
(
[seconds]
=
26
[minutes]
=
34
[hours]
=
10
[mday]
=
20
[wday]
=
1
[mon]
=
4
//[year]
=
2015
[yday]
=
109
[weekday]
=
Monday
[month]
=
April
[0]
=
1429526066
)
$t
=
getdate();
echo
$t['year'];
//传递一个时间戳
print_r(getdate(1029526066));
?
Demo6.php
?php
//直接获取当前时间戳
//echo
time();//1429526328
//这个
time()
可以调整时间
//大家可以发现
time()
很有用处,可以过去现在和将来
echo
date('Y-m-d
H:i:s',time()+60*60*8);
?
Demo7.php
?php
//获取特定指定时间的时间戳
//这是当前的时间戳
//echo
time();
//我要取得
2008-08-08
08:08:08
$beijing2008
=
mktime(8,8,8,8,8,2008);
echo
date('Y-m-d
H:i:s',$beijing2008);
?
Demo8.php
?php
//使用时间戳计算时间差
$now
=
time();//当前的时间戳
$wnow
=
mktime(0,0,0,8,16,2016);
//两个时间戳相减可以得到差秒
echo
round(($wnow
-
$now)/60/60,2).'相差这几个小时';
?
Demo9.php
?php
//将人可读的时间,字符串形式,转换成时间戳
$a
=
strtotime('2010-7-16
15:15:15')-strtotime('2010-7-16
15:14:15');
if($a
=
60){
echo
'请这位先生休息一会。';
}else{
echo
$a;
}
?
Demo10.php
?php
//获取当前文件的修改时间戳
echo
date('Y-m-d
H:i:s',getlastmod());
?
Demo11.php
?php
//配置系统环境变量
echo
date('Y-m-d
H:i:s');
echo
'br/';
//我开始设置时区
putenv('Tz=Asia/Shanghai');
echo
date('Y-m-d
H:i:s');
?
Demo12.php
?php
//putenv('Tz=Asia/Shanghai');
//获取当前时区
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();
?
Demo13.php
?php
date_default_timezone_set('Asia/Shanghai');
//"tm_sec"
-
秒数
//"tm_min"
-
分钟数
//"tm_hour"
-
小时
//"tm_mday"
-
月份中的第几日
//"tm_mon"
-
年份中的第几个月,从
开始表示一月
//"tm_year"
-
年份,从
1900
开始
//"tm_wday"
-
星期中的第几天
//"tm_yday"
-
一年中的第几天
//"tm_isdst"
-
夏令时当前是否生效
print_r(localtime(time(),true));
//Array
(
[tm_sec]
=
37
[tm_min]
=
15
[tm_hour]
=
19
//[tm_mday]
=
20
[tm_mon]
=
3
[tm_year]
=
115
//[tm_wday]
=
1
[tm_yday]
=
109
[tm_isdst]
=
)
?
Demo14.php
?php
//返回时间戳和微秒数
//怎么计算页面运行加载时间
//页面打开的时候获取一个时间
//页面结束的时候获取一个时间
//用结束的时间减去打开的时间,那么就是运行时间
//
list($a,$b)=explode('
',microtime());
//
echo
$b;
function
fn(){
list($a,$b)=explode('
',microtime());
return
$a+$b;
//返回出精确的秒数
}
//在页面打开的时候,获取一个时间
$start_time
=
fn();
for($i=0;$i10000000;$i++){
//
}
//页面结束的时候,获取一个时间
$end_time
=
fn();
echo
round(($end_time
-
$start_time),4);
?
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。