本文目錄一覽:
- 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程序設計有所幫助。
原創文章,作者:U9CRL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127575.html