//
我们经常在一些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开发、微信公众号、微信小程序开发。拥有多个软著权!