2020年4月14日 星期二

網站摸索筆記:PHP讀取網站設定.ini檔

網站在本機開發後,要部屬到伺服器上,
不同環境的DB連線資訊有些不同,因此想將網站設定檔獨立為本機、伺服器兩份,
這樣就不用再因環境不同而修改程式。

新增一個.ini檔案紀錄DB,內容如下:
[database]
db_name'mydb'
db_user'root'
db_password'[root帳號的密碼]'
db_url='localhost:3306'
- [database]: 這是sction,區分ini檔中的各區塊
- 其下的db_name、db_user、db_password、db_url都是參數
- 儲存檔名為 "webconfig.ini"

新增一個php檔案,內容如下:
<?php
//使用parse_ini_file來讀取.ini檔案,會以陣列的方式來存放內容
$ini = parse_ini_file('webconfig.ini',true);

//ini中的sction與參數名會變成陣列的索引 $ini[secion][參數名]
$db=$ini["database"]["db_name"];
$dbhost=$ini["database"]["db_url"];
$dbuser=$ini["database"]["db_user"];
$dbpass=$ini["database"]["db_password"];

//分行列印讀取的陣列資料
echo '<pre>',print_r($ini);'</pre>';

//使用mysqli_connect()來進行DB連線
$link=mysqli_connect($dbhost,$dbuser,$dbpass);
if(! $link) {
    die ('DB連線失敗'mysqli_error($link));
}
echo 'DB連線成功';
?>
- 使用函式 parse_ini_file(),詳見手冊https://www.php.net/manual/en/function.parse-ini-file.php
- 使用print_r()來顯示陣列資料,參閱手冊https://www.php.net/manual/en/function.print-r.php

從瀏覽器看會看到如下畫面

* 透過webconfig.ini區分兩個環境所存取的DB位置
- 對在Google Cloud Platfom上的VM程式來說就是存Localhost的資料庫
- 本機開發則是透過IP連到遠端的DB


沒有留言:

張貼留言