透析PHP的配置文件php.ini

今天,我們來侃侃php(做為現在的主流開發語言).INI文件中的一些有趣的內容吧。

  php(做為現在的主流開發語言).INI文件相信每位php(做為現在的主流開發語言)愛好者都不會陌生,在php(做為現在的主流開發語言)的上一個版本php(做為現在的主流開發語言)3.0中它被命名為php(做為現在的主流開發語言)3.INI。用NOTEPAD打開它,文件通常在操作系統的Windows目錄下。大傢都看到,php(做為現在的主流開發語言).INI文件裡面有很多分號“”,和Windows系統一樣,這些分號用來表示註解,也就是說為瞭配置文件清晰易懂,開發者在分號後面對每個配置功能做瞭簡短說明,系統處理時會忽略這些註解行。當然,另外一個好處是,當php(做為現在的主流開發語言)系統配置有變化的時候,我們可以對某些行加上或去掉註解就行瞭,簡單又方  
便。

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

  myprefix.php(做為現在的主流開發語言)文件
  <?php(做為現在的主流開發語言)
  if (strstr(strtoupper( php(做為現在的主流開發語言)_SELF),”/php(做為現在的主流開發語言)TEST/”))
  echo “我的廣告!<BR>”;
  ?>

  這樣隻要設置:auto_prepend_file=“myprefix.php(做為現在的主流開發語言)”,那麼所有php(做為現在的主流開發語言)test目錄下的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);(該函數可去掉字串中的反斜杠轉義符“”。若是連續二個反斜杠,則去掉一個,留下一個。若隻有一個反斜杠,就直接去掉。)來去掉轉義符“”,我們可以比較一下:

  <form>
  <input type=”Text” value=”” name=”a”>
  <input type=”Submit”>
  </form>
  <?php(做為現在的主流開發語言)
  echo a;
  ?>

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

  SMTP string 指定郵件發送服務器的域名或IP地址,這樣我們就可以發信啦,比起微軟的ASP來,php(做為現在的主流開發語言)的這個功能簡單方便得多瞭,有人要問,如果我沒有配備郵件服務器怎麼辦?很簡單,隻要填上當地ISP的郵件服務器就行瞭。其實收發郵件服務器就像我們現實生活中的郵局一樣,在哪個郵局都能發信,而收信是在固定郵局。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。