//
我們經常在一些php開發的開源軟件產品上看到,使用之前必須要安裝,說白了就是要連接數據庫,生成數據表。下面我們來介紹安裝程序是如何實現的。
安裝第一步:檢測系統是否已經安裝過,并且顯示用戶的安裝協議
<?Php
//安裝第一步到達首頁,檢測該系統是否已經安裝過,檢測 install 文件。
//file_exists這個函數是檢測文件是否存在,如果存在返回true,如果不正在返回false
//路徑確定的話是已當前訪問文件的路徑為準,以服務器端路徑為路徑來去定
if(file_exists('install.lock')){
exit('你已經安裝過了本系統,請不再再重新安裝,如果確定要重新安裝,請刪除install.lock文件');
}
?>
<a href="step1.php">同意協議</a>
安裝第二步:檢測文件的可讀性與可寫性
<?php
//檢測文件是否可寫
//把需要檢測的文件和目錄放入到一個數組里面來,循環這個數組即可 foreach
//通過 filewriteable readable 這樣一些函數來檢測是否有權限
$arr=array('index.php','step1.php','step2.php','step3.php');
//標志位變量,如果這個變量為真,就可以執行下一步,如果為假就不能夠顯示下一步
$flag=true;
foreach($arr as $value){
echo $value;
if(is_writeable($value)){
echo '該文件可寫';
}else{
$flag=false;
echo '該文件不可寫';
}
if(is_readable($value)){
echo '該文件可讀';
}else{
$flag=false;
echo '該文件不可讀';
}
}
if($flag){
//如果通過檢測可以進行下一步
echo '<a href="step3.php">下一步</a>';
}else{
//如果$flag 不通過 則為假 ,輸出警告
echo '文件有些無權限,請修改權限后再來安裝';
}
?>
第三步:輸出當前數據庫的連接信息,提供讓用戶修改的表單
<?php
//將當前的數據庫連接信息,顯示出來,通過一個表單來修改即可
//這個config.php也可以放到include/config.php
include 'config.php';
?>
<form action="step4.php" method="post">
數據庫主機:<input type="text" name="DB_HOST" value="<?php echo DB_HOST?>" /><br>
數據庫用戶名:<input type="text" name="DB_USER" value="<?php echo DB_USER?>" /><br>
數據庫密碼:<input type="text" name="DB_PWD" value="<?php echo DB_PWD?>" /><br>
數據庫前綴:<input type="text" name="DB_PREFIX" value="<?php echo DB_PREFIX?>" /><br>
數據庫庫名:<input type="text" name="DB_NAME" value="<?php echo DB_NAME?>" /><br>
<input type="submit" value="修改數據配置文件" />
</form>
第四步:獲得用戶提交過來的表單的所有的信息,使用正則表達式來匹配替換文件 <?php
//打開文件,將內容全部獲得為字符串
$string=file_get_contents('config.php');
//循環遍歷表單接收的內容
foreach($_POST as $key=>$value){
//正則
$zz="/define\('".$key."','(.*?)'\);/";
//替換
$th="define('$key','$value');";
$string=preg_replace($zz,$th,$string);
}
file_put_contents('config.php',$string);
?>
<a href="step5.php">下一步</a>
第五步:導入表數據 <?php
include 'config.php';
$conn=mysql_connect(DB_HOST,DB_USER,DB_PWD);
if(mysql_errno()){
exit(mysql_error());
}
mysql_select_db(DB_NAME);
mysql_set_charset('utf8');
$file=file_get_contents('runchance.sql'); //獲得sql 導入表中的所有的信息,使用正則替換
//替換函數
$file=str_replace('run_',DB_PREFIX,$file);
$arr=explode(';',$file); //用;分割所有的sql 語句,然后循環執行
foreach($arr as $value){
mysql_query($value);
echo '表導入成功<br>';
}
file_put_contents('install.lock',' '); //安裝完成后輸出一個文件鎖防止用戶再次安裝
echo '恭喜你安裝完成,請使用管理員admin 密碼admin123456登陸本網站';
?>
然成科技是獲得云南省科技廳、省財政廳、省稅務局等機構認定的高新技術企業。公司定位于高端網站設計、系統開發、APP開發、微信公眾號、微信小程序開發。擁有多個軟著權!