php 文件读取 急急急 在线等。。

yaoxuemin 2010-07-05 02:39:57
想要读取 文件 内容 如下:

$config['site_title']['chinese'] = '标题';
$config['site_keywords']['chinese'] = '关键字';
$config['site_description']['chinese'] = '呵呵呵呵';
的文件要怎么读取呢??


...全文
121 点赞 收藏 23
写回复
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
LuciferStar 2010-07-06
楼主其实是要修改数据。
可以全部读出,然后重新生成。
回复
kyzy_yy_pm 2010-07-05
方法很多,最常用的都是include之类的,其他的也可以用
回复
Dleno 2010-07-05
$config['site_title']['chinese'] = '标题';
$config['site_keywords']['chinese'] = '关键字';
$config['site_description']['chinese'] = '呵呵呵呵';

如果这个是语言配置,那你的配置就应该是:

$config['chinese']['site_title'] = '标题';
$config['chinese']['site_keywords']= '关键字';
$config['chinese']['site_description']= '呵呵呵呵';

直接包含就可以用了。

至于修改值,并保存,自己写个函数吧。
下面的是PHPWIND里保存数组的函数:


function vvar_export($array,$c=1,$t='',$var=''){
$c && $var="array(\r\n";
$t.=" ";
if(is_array($array)){
foreach($array as $key => $value){
$var.="$t\"".addslashes($key)."\"=>";
if(is_array($value)){
$var.="array(\r\n";
$var=vvar_export($value,0,$t,$var);
$var.="$t),\r\n";
} else{
$value=addslashes($value);
$value=str_replace("\'","'",$value);
$var.="\"".($value)."\",\r\n";
}
}
}
if($c){
$var.=")";
}
return $var;
}

//用法:
$arr=array(**************);
$cachedb="<?php\r\n";
$cachedb.='$arr='.vvar_export($arr).";\r\n";
$cachedb.="?>";

echo $cachedb;


回复
garcon1986 2010-07-05
使用php 函数就可以了。


回复
longquanyinyu 2010-07-05
/**
* 修改php文件,传入key和修改的val
* doky
* @param string $key
* @param string $values
*/
function update($key,$values){
$str='$config[\''.$key.'\'] = \''; //$config['key']='
$data = $str.$this->config->item($key); //$config['key']='value
$repl = $str.$values; //$config['key']='value2

$filename = str_replace('controllers\pm','config\testing.php',dirname(__FILE__));
$file_content = file_get_contents($filename);
$somecontent = str_replace($data,$repl,$file_content);

if (is_writable($filename)) {
if (!$handle = fopen($filename, 'w')) {
echo "不能打开文件";
exit;
}
// 将$somecontent写入到我们打开的文件中。
if (fwrite($handle, $somecontent) === FALSE) {
echo "不能写入到文件";
exit;
}
echo "成功";
fclose($handle);

} else {
echo "文件不可写>";
}
回复
foolbirdflyfirst 2010-07-05
ls的同学们多多注意LZ
' 我要读取它原有的值 然后显示在前台页面,然后可以在前台页面去修改这个文件中的任意一个 键的值 !'
这个需求.貌似LZ描述的还不清晰,修改值,要存回文件中去吗?一般是不能这么设计的,只能认为LZ的真正需求是用户前台切换语言.
回复
foolbirdflyfirst 2010-07-05
上面那个逻辑不通,应该使用session保存当前用户选择的语言。
session_start();
include('config.php');
beforeReadConfig();//实现插件机制。实际上的设计要复杂一些。

function beforeReadConfig()
{
if($_POST['language'])//用户修改了显示的语言
{
$_SESSION['g_lang'] = $_POST['language'];
}
else $_SESSION['g_lang'] = $_SESSION['g_lang'] ? $_SESSION['g_lang'] : 'chinese';
}

echo $config['site_title'][$_SESSION['g_lang']];
回复
kyzy_yy_pm 2010-07-05
[Quote=引用 8 楼 yaoxuemin 的回复:]
引用 7 楼 kyzy_yy_pm 的回复:

$arr = file($txt_file)


什么意思啊?
[/Quote]
返回.txt文本的内容为array类型,每行代表一个键值对,前面的为键后面为值,
例如a.txt中有如下:
username zhangsan
gender f
那么对出的为:
Array{
[username] => zhangsan,
[gender] => gender
}
调用就行了
回复
amani11 2010-07-05
这个楼层很神奇

读文件,file_get_contents也可以,引用,直接require或include
回复
taoonlyloveu 2010-07-05
inclue

回复
foolbirdflyfirst 2010-07-05
[Quote=引用 10 楼 yaoxuemin 的回复:]

引用 6 楼 cunningboy 的回复:

你的文件内容是什么,不是文本文件吗?


不是啊! 都是已键值的方式 存储的! 类似于这样
//中文
$config['site_title']['chinese'] = '富风个的风格';
$config['site_keywords']['chinese'] = '的风格的风格的发';
$config['site_descri……
[/Quote]
做一个beforeReadConfig的事件,处理配置值.
你这个是多语言配置文件吧?
include('config.php');
beforeReadConfig();//实现插件机制。实际上的设计要复杂一些。

function beforeReadConfig()
{
if($_POST['language'])//用户修改了显示的语言
{
$GLOBALS['g_lang'] = $_POST['language'];
}
else $GLOBALS['g_lang'] = 'chinese';
}

echo $config['site_title'][$g_lang];

回复
xuzuning 2010-07-05
如果数据是用<?php ?>包裹的,则用 include '文件名'; 载入
否则用 eval('<?php'. file_get_contents('文件名') . '?>'); 载入

载入后可以 print_r($config); 查看
回复
CunningBoy 2010-07-05
可以用parse_ini_file函数读取到数组中,然后用键值$config['site_title']['chinses']访问
回复
yaoxuemin 2010-07-05
[Quote=引用 6 楼 cunningboy 的回复:]

你的文件内容是什么,不是文本文件吗?
[/Quote]

不是啊! 都是已键值的方式 存储的! 类似于这样
//中文
$config['site_title']['chinese'] = '富风个的风格';
$config['site_keywords']['chinese'] = '的风格的风格的发';
$config['site_description']['chinese'] = '的风格的风格';
//英文
$config['site_title']['english'] = '的覆盖到发';
$config['site_keywords']['english'] = '的非官方y';
$config['site_description']['english'] = 'Pro的非官方个

我要读取它原有的值 然后显示在前台页面,然后可以在前台页面去修改这个文件中的任意一个 键的值 !
回复
zhongqixing1104 2010-07-05
2楼正解,inlude
回复
yaoxuemin 2010-07-05
[Quote=引用 7 楼 kyzy_yy_pm 的回复:]

$arr = file($txt_file)
[/Quote]

什么意思啊?
回复
kyzy_yy_pm 2010-07-05
$arr = file($txt_file)
回复
CunningBoy 2010-07-05
你的文件内容是什么,不是文本文件吗?
回复
yaoxuemin 2010-07-05
[Quote=引用 1 楼 cunningboy 的回复:]

PHP手册的例子:

PHP code
<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($h……
[/Quote]
我看过了 这样好像只能读取 纯文本的东西, 对于这种键值的没有办法读取啊!
回复
yaoxuemin 2010-07-05
[Quote=引用 2 楼 dingsongtao 的回复:]

包含进来就可以了
用的时候也就是:
$config['site_title']['chinese'],直接就用了
[/Quote]

那我在前台页面将这个 值 做修改后,要怎么做呢?
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告