当前位置: 编程技术>php
本页文章导读:
▪PHP中防止直接访问或查看或下载config.php文件的方法
或是,PHP的设计本身就避免直接查看文件内容的情况? 从安全角度考虑,这个系统级的文件应该做什么保护措施? 网友完善的答案 经调研,得出以下常用方法: 1 在程序中定义一个标识变.........
▪php数据库配置文件一般做法分享
config.php文件: 代码如下: <?php $db_name="test"; $db_username="root"; global $db_password; ?> 数据库操作类(调用配置文件)db.fun.php: 代码如下: <?php require("config/config.php"); class db{ function fun(){ glo.........
▪php中配置文件操作 如config.php文件的读取修改等操作
代码如下: <?php $name="admin";//kkkk $bb='234'; $db=4561321; $kkk="admin"; ?> 函数定义: 配置文件数据值获取:function getconfig($file, $ini, $type="string") 配置文件数据项更新:function updateconfig($file, $ini, $.........
[1]PHP中防止直接访问或查看或下载config.php文件的方法
来源: 互联网 发布时间: 2013-11-30
或是,PHP的设计本身就避免直接查看文件内容的情况? 从安全角度考虑,这个系统级的文件应该做什么保护措施?
网友完善的答案
经调研,得出以下常用方法:
1 在程序中定义一个标识变量
define('IN_SYS', TRUE);
2 在config.php中获取这变量
if(!defined('IN_SYS')) {
exit('禁止访问');
}
网友完善的答案
经调研,得出以下常用方法:
1 在程序中定义一个标识变量
代码如下:
define('IN_SYS', TRUE);
2 在config.php中获取这变量
代码如下:
if(!defined('IN_SYS')) {
exit('禁止访问');
}
[2]php数据库配置文件一般做法分享
来源: 互联网 发布时间: 2013-11-30
config.php文件:
<?php
$db_name="test";
$db_username="root";
global $db_password;
?>
数据库操作类(调用配置文件)db.fun.php:
<?php
require("config/config.php");
class db{
function fun(){
global $db_username,$db_password;
echo "数据库用户名:".$db_username."<br />";
echo "数据库密码:".$db_password."<br />";
}
}
?>
应用文件test.php:
<?php
require("include/db.fun.php");
$a= new db();
$a->fun();
?>
global关键字:
<?php
$a = 1; /* global scope */
function Test()
{
echo $a; /* reference to local scope variable */
}
Test();
?>
这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值。你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能漫不经心的改变一个全局变量。PHP 中全局变量在函数中使用时必须申明为全局。
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
以上脚本的输出将是“3”。在函数中申明了全局变量 $a 和 $b,任何变量的所有引用变量都会指向到全局变量。对于一个函数能够申明的全局变量的最大个数,PHP 没有限制。
代码如下:
<?php
$db_name="test";
$db_username="root";
global $db_password;
?>
数据库操作类(调用配置文件)db.fun.php:
代码如下:
<?php
require("config/config.php");
class db{
function fun(){
global $db_username,$db_password;
echo "数据库用户名:".$db_username."<br />";
echo "数据库密码:".$db_password."<br />";
}
}
?>
应用文件test.php:
代码如下:
<?php
require("include/db.fun.php");
$a= new db();
$a->fun();
?>
global关键字:
代码如下:
<?php
$a = 1; /* global scope */
function Test()
{
echo $a; /* reference to local scope variable */
}
Test();
?>
这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值。你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能漫不经心的改变一个全局变量。PHP 中全局变量在函数中使用时必须申明为全局。
代码如下:
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
以上脚本的输出将是“3”。在函数中申明了全局变量 $a 和 $b,任何变量的所有引用变量都会指向到全局变量。对于一个函数能够申明的全局变量的最大个数,PHP 没有限制。
[3]php中配置文件操作 如config.php文件的读取修改等操作
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
$name="admin";//kkkk
$bb='234';
$db=4561321;
$kkk="admin";
?>
函数定义:
配置文件数据值获取:function getconfig($file, $ini, $type="string")
配置文件数据项更新:function updateconfig($file, $ini, $value,$type="string")
调用方式:
代码如下:
getconfig("./2.php", "bb");//
updateconfig("./2.php", "kkk", "admin");
代码如下:
<?php
//配置文件数据值获取。
//默认没有第三个参数时,按照字符串读取提取''中或""中的内容
//如果有第三个参数时为int时按照数字int处理。
function getconfig($file, $ini, $type="string")
{
if ($type=="int")
{
$str = file_get_contents($file);
$config = preg_match("/" . $ini . "=(.*);/", $str, $res);
Return $res[1];
}
else
{
$str = file_get_contents($file);
$config = preg_match("/" . $ini . "=\"(.*)\";/", $str, $res);
if($res[1]==null)
{
$config = preg_match("/" . $ini . "='(.*)';/", $str, $res);
}
Return $res[1];
}
}
//配置文件数据项更新
//默认没有第四个参数时,按照字符串读取提取''中或""中的内容
//如果有第四个参数时为int时按照数字int处理。
function updateconfig($file, $ini, $value,$type="string")
{
$str = file_get_contents($file);
$str2="";
if($type=="int")
{
$str2 = preg_replace("/" . $ini . "=(.*);/", $ini . "=" . $value . ";", $str);
}
else
{
$str2 = preg_replace("/" . $ini . "=(.*);/", $ini . "=\"" . $value . "\";",$str);
}
file_put_contents($file, $str2);
}
//echo getconfig("./2.php", "bb", "string");
getconfig("./2.php", "bb");//
updateconfig("./2.php", "kkk", "admin");
//echo "<br/>".getconfig("./2.php", "name","string");
?>
代码如下:
//完善改进版
/**
* 配置文件操作(查询了与修改)
* 默认没有第三个参数时,按照字符串读取提取''中或""中的内容
* 如果有第三个参数时为int时按照数字int处理。
*调用demo
$name="admin";//kkkk
$bb='234';
$bb=getconfig("./2.php", "bb", "string");
updateconfig("./2.php", "name", "admin");
*/
function get_config($file, $ini, $type="string"){
if(!file_exists($file)) return false;
$str = file_get_contents($file);
if ($type=="int"){
$config = preg_match("/".preg_quote($ini)."=(.*);/", $str, $res);
return $res[1];
}
else{
$config = preg_match("/".preg_quote($ini)."=\"(.*)\";/", $str, $res);
if($res[1]==null){
$config = preg_match("/".preg_quote($ini)."='(.*)';/", $str, $res);
}
return $res[1];
}
}
function update_config($file, $ini, $value,$type="string"){
if(!file_exists($file)) return false;
$str = file_get_contents($file);
$str2="";
if($type=="int"){
$str2 = preg_replace("/".preg_quote($ini)."=(.*);/", $ini."=".$value.";",$str);
}
else{
$str2 = preg_replace("/".preg_quote($ini)."=(.*);/",$ini."=\"".$value."\";",$str);
}
file_put_contents($file, $str2);
}
最新技术文章: