PHP 一些瑣碎

A.命令行運行PHP代碼

php -r "echo 1;"


B.5.3.0分水嶺版本的一些改變

  • POSIX → PCRE
  • ereg_replace() → preg_replace()
  • ereg() → preg_match()
  • eregi_replace() → preg_replace()
  • eregi() → preg_match()
  • split() → preg_split()
  • spliti() → preg_split()
  • sql_regcase() → No equivalent
php5.4取消了magic_quotes_gpc後
function addslashesDeep($var) {
return is_array($var) ? array_map('addslashesDeep', $var) : addslashes($var);
}
$_GET = addslashesDeep($_GET);
$_POST = addslashesDeep($_POST);
$_COOKIE = addslashesDeep($_COOKIE);
$_REQUEST = addslashesDeep($_REQUEST);


C.寫文件 不換行
fwrite($fp,"\r\n");
原來需要雙引號,困擾了我好多年。

D.method_exists VS is_callable
如果method_exists恰好判斷一個私有或者受保護的方法時,能夠得到一個正確的返回,但是執行的時候,會得到一個 “Fatal Error”。

E.用異或交換兩個整數的陷阱
function exchange($a, $b)
{
if($a == $b) return ; //相等時會……
$a ^= $b;
$b ^= $a;
$a ^= $b;
}

F.php array會把string key自動轉成int嗎?
php的int取值範圍與系統有關,在int的有效範圍內,php array會把數字字符串的key轉成int;當key超過int範圍時,不再轉換。

G.特殊優先級的情況
if ($a = 100 && $b = 200) {
    var_dump($a, $b);
}

if ($a = 100 || $b = 200) {
    var_dump($a, $b);
}
雖然&&具有高優先級,但是在這個表達式中必須先執行$b=200,再執行100 && $b,因爲如果先執行100 && $b的話表達式就成了
$a = (100 && $b) = 200; 會有語法錯誤。所以……

G.mysql的substring的pos從1開始,php的substr從0開始。

H.safe_mode

PHP5.4開始 無安全模式 之前所起到的功能 用系統用戶權限來實現

1.系統文件函數 open_basedir 

chdir, move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, rename, fopen, require, highlight_file, show_source, include, symlink, link, touch, mkdir, unlink

2.執行命令函數 safe_mode_exec_dir

exec,shell_exec,passthru,system,popen

3.部分設置函數

set_time_limit, set_include_path, ini_set的display_errors、memory_limit


safe_mode=on打開安全模式

safe_mode_gid = off  開啓後  此值應該 與文件系統函數的目標文件的用戶id 一致

safe_mode_exec_dir 執行程序目錄

safe_mode_include_dir 包含文件目錄

open_basedir PHP腳本能夠訪問的目錄

disable_functions=chdir,chroot,dir 關閉指定函數(例如文件操作什麼的)

expose_php = Off 關閉PHP版本信息

register_globals = Off 關閉註冊的全局變量(POST或者GET提交的變量,都將自動註冊爲全局變量。關閉後用$_GET['key']訪問)

magic_quotes_gpc = On 防止SQL注入


I.ci框架

實現多項目公用一套system 

把index.php放進不同的application目錄下  web服務器更目錄設置此application下  更改index.php的目錄設置即可


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章