編程經(jīng)驗分享:平時積累的PHP技巧
來源:程序員人生 發(fā)布時間:2014-04-20 19:12:58 閱讀次數(shù):3264次
建站學(xué)院轉(zhuǎn)載 平時積累的PHP技巧,與大家分享,可能有一些很基礎(chǔ),但每個人都有大腦短路的時候,常拿出來翻翻也沒有壞處......
如果有什么錯誤 希望指出,或是跟貼分享自己積累的技巧
PHP代碼 public function GetIP(){ if (getenv("HTTP_CLIENT_IP")&& strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown")) { $ip = getenv("HTTP_CLIENT_IP"); } elseif (getenv("HTTP_X_FORWARDED_FOR")&& strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown")) { $ip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) { $ip = getenv("REMOTE_ADDR"); } elseif (isset($_SERVER['REMOTE_ADDR'])&$_SERVER['REMOTE_ADDR']&strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) { $ip = $_SERVER['REMOTE_ADDR']; } else $ip = "unknown"; return($ip); } |
2、跳轉(zhuǎn) <meta http-equiv='refresh' content='3; url =1.php'>
3、 /(^[0-9]|^[1-9][d]{1,3})($|[.][d][1-9]$|[.][1-9]$)/; 一個價格匹配的正則
4、js 取得 1-10的隨機(jī)數(shù) document.write(Math.floor(Math.random()*10+1)); //1-10隨機(jī)數(shù)
5、mysql 取得隨機(jī)記錄 SELECT * FROM lzyblog_shop_category ORDER BY RAND() limit 5
6、js: onpropertychange當(dāng)對象屬性發(fā)生變化的時候觸發(fā)事件
7、篩選出 年月出來的 SQL
SELECT regdate FROM `analyse_system` GROUP BY year( regdate ) + month( regdate ) ORDER BY `regdate` DESC
或是 SELECT regdate FROM `analyse_system` GROUP BY left(regdate,7) ORDER BY `regdate` DESC
8、strrev 字符串翻轉(zhuǎn)
9、basename(__FILE__); 獲得文件名稱
10、implode(間隔符號,數(shù)組) explode(間隔符號,字符串)
11、加下劃線的 CSS
<a href="#" style="text-decoration:none; border-bottom:#FF0000 1px dashed;">asdfasdf</a>
12、perl 的效率問題
1)處理文本文件,一般是逐行讀入,在這樣的循環(huán)里,絕不要使用外部shell命令,例如,假如要將分析內(nèi)容寫往其他文件,那么該老老實實的使用perl 自己的寫文件句柄的方式,而不要使用shell的"echo $_ >;file"之類的命令,后者比前者慢10000倍。
2)在匹配正則表達(dá)式時,如果匹配里含有"&"字符,那么記得在前面加個""轉(zhuǎn)義,否則perl會把匹配的內(nèi)容復(fù)制一份以供以后參考,這導(dǎo)致程序其慢無比;
3)在匹配正則表達(dá)式時,盡量不要使用i選項(區(qū)分大小寫),請將不區(qū)分大小寫的區(qū)域盡量縮小,例如/ID=something&/i,如果只對ID不分大小寫的話,那么應(yīng)該這么寫:/[Ii][Dd]=something&/,后者比前者快不止100倍;
4)在匹配正則表達(dá)式時,如果匹配項是固定不變的,那么請使用o選項,這表示只對正則表達(dá)式編譯一次,例如/jsp/io比/jsp/i好很多。
5)while循環(huán)要比for/foreach循環(huán)效率高,
6)多用小括號,少用$&,$`,$'
7)多余多行匹配推薦用s/m修飾符,不推薦使用$*
13、linux修改時間
date -s 07/5/10 &&
date -s 09:28:00 &&
#clock -w
14、 checkdate 用 UNIX時間戳驗證時間的正確性
15、cvs 的建立
環(huán)境設(shè)置:指定CVS庫的路徑CVSROOT
tcsh
setenv CVSROOT /path/to/cvsroot(指定CVS路徑)
bash
CVSROOT=/path/to/cvsroot(指定CVS路徑) ; export CVSROOT
初始化:CVS版本庫的初始化。
cvs init
導(dǎo)入庫
$ cd wdir(項目的目錄)
$ cvs import -m "Imported sources" yoyodyne/rdir(期望在CVSROOT下的目錄名) yoyo(作者) start
導(dǎo)入
$ cd ..
$ cvs checkout yoyodyne/rdir(項目名) # Explanation below
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈