首頁  >  文章  >  後端開發  >  解析PHP中的設定檔php.ini

解析PHP中的設定檔php.ini

WBOY
WBOY原創
2016-08-08 09:33:40951瀏覽

  PHP.INI檔案相信每位PHP愛好者都不會陌生,在PHP的上一個版本PHP3.0中它被命名為PHP3.INI。用NOTEPAD開啟它,檔案通常在作業系統的Windows目錄下。大家都看到,PHP.INI檔案裡面有很多分號“”,和Windows系統一樣,這些分號用來表示註解,也就是說為了設定檔清晰易懂,開發者在分號後面對每個配置功能做了簡短說明,系統處理時會忽略這些註解行。當然,另一個好處是,當PHP系統配置有變化的時候,我們可以對某些行加上或去掉註解就行了,簡單又方  
便。

  auto_PRepend_file string 可以指定一個檔案自動地在讀取所有php檔案之前解析執行,可以為PHP、asp、HTML等任何檔案(不過圖片檔案可不行),在特殊時候倒是很有用。例如你想在每個PHP頁面上增加一段廣告,又假設你在開發一個網站,想讓所有訪客在讀取任何PHP頁面之前進行身份驗證,你就可以把你的驗證程式碼作成單獨文件,然後在這裡設定string為該檔名就行啦。細心的讀者要問了:如果我只是某些文件需要這些功能,可怎麼辦呀,開動腦筋吧,舉個例子:

  myprefix.php檔
     if (strstr(strtoupper( PHP_SELF),"/PHPTEST/"))
  echo "我的廣告!
";
  ?>

  這樣只要設定:auto_prepend_file=“myprefix.php”,那麼所有phptest目錄下的PHP檔案都都包含你的廣告頭啦!還需要說明的是這個檔案應該放在include_path所指的路徑裡面,不然可能會出錯的,下面就會提到它。

  auto_append_file string 和上方功能類似,只是自動加在PHP檔案結尾,而且PHP程式用exit()退出時就不管用了。有了這個功能,我們可以易如反掌地添加公司地址的腳註了!

  include_path string 這個參數的作用是讓include()、require()等函數在這裡所定義的路徑中查找文件,是不是有點象DOS時代裡用的SET PATH命令?這個參數可以提供一個路徑列表,不過在UNIX中路徑間用冒號分隔,在NT中用分號,而且斜線的方向也不相同。如:
UNIX例:include_path=.:/home/lib
NT 範例:include_path=".:c:homeib" 其中「.」表示目前目錄。
gpc_order string

  GPC是GET/POST/COOKIE三種變數的第一個字母,它的順序體現系統處理三種變數的優先級別,從左到右,優先權依序遞增。預設為GPC,因此當有其中任兩種或三種名稱相同變數傳遞到伺服器時,系統會依優先權排序,只讀取優先權較高的變數。又例如設定成 “GP” 表示忽略 cookie,並在存取方法 (method) 相同時,以 POST 取代GET。當然,我們在程式設計過程中應盡量避免同時用不同的方式傳遞名稱相同的變量,否則程式的可讀性會變壞,而且在配置不同的系統裡可能會有不同的輸出結果。

  magic_quotes_gpc boolean 這個參數能確定包含在GET/POST/COOKIE這三種變數中的特殊字元:單引號、雙引號、斜杠,是否加轉義字元反斜杠(就是C語言裡常用的“”)?因為在PHP資料庫等系統中,單引號等字元通常有特殊意義,為了和真正的字元區分,我們可以設定magic_quotes_gpc=on,這樣如果我們從用戶端得到的變數中有單引號時,會在前面加轉義符,然後我們可以根據需要用函數stripslashes(string str);(該函數可去掉字符串中的反斜杠轉義符“”。若是連續二個反斜杠,則去掉一個,留下一個。
  

  
  
  

     echo a;
  ?>

  讓我們分別在magic_quotes_gpc=on和off的情況下,在文字方塊中輸入單引號、雙引號,然後提交,看看有什麼區別?

SMTP string 指定郵件發送伺服器的網域名稱或IP位址,這樣我們就可以發信啦,比起微軟的ASP來,PHP的這個功能簡單方便得多了,有人要問,如果我沒有配備郵件伺服器怎麼辦?很簡單,只要填上當地ISP的郵件伺服器就行了。其實收發郵件伺服器就像我們現實生活中的郵局一樣,在哪個郵局都能寄信,而收信是在固定郵局。

  MySQL.default_host string
  mysql.default_user string
  mysql.default_passWord string

  用過ODBC的讀者們都知道,設定ODBC的時候總需要設定資料庫所在及其預設的登入使用者名稱和口令,這幾個參數也是這個意思,不過是用在MYSQL裡面罷了。為了安全起見,我們還有必要在MYSQL裡對該用戶的權力做一些限定,千萬不要偷懶用「root「啊!如果為了方便而設定了這些參數,那我們就能直接用函數mysql_connect()來連接資料庫了,注意這裡可以不用任何參數!

  大家可能在想,雖然這樣很方便,同時也很危險呀!別急,在PHP的安全模式裡這些參數是無效的,下面我們來看看安全模式的設定吧。

  Safe mode boolean 這可不是WINDOWS 98的安全模式。當PHP系統處於安全模式下時,我們就能對PHP程式的行為進行一定的控制,這時候一些資料庫例如MYSQL、INFOMIX等的預設資料庫主機、使用者名稱、口令等設定無效,非法使用者就無法輕易連接資料庫了。而且在安全模式下safe_mode_allowed_env_vars string該項目設定表示什麼類型的系統環境變數可以被程式更改,若設定成safe_mode_allowed_env_vars=PHP_則表示只有PHP_打頭的系統環境變數可以被修改,例如此時如果在程式中企圖使用putenv("windir=UUU");來修改環境變量,系統就會提示一個安全模式的保護錯誤。還有,安全模式對系統指令system()等有一定限制,如只能在指定目錄運作等,這樣能對系統檔案有一定的保護作用。

  log_errors boolean 這個參數指定PHP程式出錯時是否要將錯誤訊息記錄在 LOG文件中。在NT系統中如果我們同時設定error_log =syslog的話,我們就能在事件檢視器的應用程式日誌中看到PHP所發生過的錯誤訊息,這對測試一個大型的系統有些幫助。
error_prepend_string = ""
error_append_string = "
"

  這兩個設定參數更有意思啦,如上設置,那麼我們一眼就能看到:我們的程式是否出錯了!因為他的功能是把出錯訊息設定成顯眼的紅顏色了。


以上就介紹了解析PHP中的設定檔php.ini,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn