php的cms系统或者其他系统,后台配置项,是如何调用的? 5

比如,一个分页设置,我显示每页显示5条,类似的这些配置项,都可以去在后台配置,那么其他的配置项还有很多,怎么去调用这些配置项呢?请说下思路,或者他们开源系统都是怎么做的?... 比如,一个分页设置,我显示每页显示5条,类似的这些配置项,都可以去在后台配置, 那么其他的配置项还有很多, 怎么去调用这些配置项呢? 请说下思路,或者他们开源系统都是怎么做的? 谢谢您啦 展开
 我来答
那段逝去的过往
2016-05-17 · TA获得超过471个赞
知道小有建树答主
回答量:458
采纳率:83%
帮助的人:308万
展开全部

这些配置项一般都是写到一个专门的配置文件当中的,例如:

phpcms是将所有的配置文件放置到了configs目录当中,目录当中又写了database.php(数据库配置项),system.php(系统配置项)等等

配置项在这些文件中直接写成了一个数组,使用的时候写一个获取配置项的函数get_config('database'),这样直接是把database.php给include进来了

更改配置项的时候是file_get_contents,然后匹配替换相关配置就好了。

/**
 * 设置config文件
 * @param $config 配属信息
 * @param $filename 要配置的文件名称
 */
function set_config($config, $filename="system") {
$configfile = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$filename.'.php';
if(!is_writable($configfile)) showmessage('Please chmod '.$configfile.' to 0777 !');
$pattern = $replacement = array();
foreach($config as $k=>$v) {
if(in_array($k,array('js_path','css_path','img_path','attachment_stat','admin_log','gzip','errorlog','phpsso','phpsso_appid','phpsso_api_url','phpsso_auth_key','phpsso_version','connect_enable', 'upload_url','sina_akey', 'sina_skey', 'snda_enable', 'snda_status', 'snda_akey', 'snda_skey', 'qq_akey', 'qq_skey','qq_appid','qq_appkey','qq_callback','admin_url'))) {
$v = trim($v);
$configs[$k] = $v;
$pattern[$k] = "/'".$k."'\s*=>\s*([']?)[^']*([']?)(\s*),/is";
         $replacement[$k] = "'".$k."' => \${1}".$v."\${2}\${3},";
}
}
$str = file_get_contents($configfile);
$str = preg_replace($pattern, $replacement, $str);
return pc_base::load_config('system','lock_ex') ? file_put_contents($configfile, $str, LOCK_EX) : file_put_contents($configfile, $str);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式