php中有没有读写ini文件的函数? 记得Pear里有这个类我手头其他类库里,也有,得找找。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以用php_stream_fopen_from_file()试试 专门的ini操作函数:ini_get、ini_set parse_ini_file()parse_strparse_url ..。都是ini格式的处理函数 to bflovesnow(北风) 能不能给出你说的函数的具体用法呀,而且好像这些函数都只能读取ini文件的值,那么如何写ini文件的值呢?比如,我想写DNS的值set_ini_value(option, optionvalue)类似的用法? 楼主应该学会查手册:http://cn.php.net/manual 读取ini文件用parse_ini_file()函数目前尚未发现写ini文件的函数,所以只好自己写一个了<?phpdefine("LF","\r\n");function write_ini_file($array,$filename) { $ok = ""; $s = ""; foreach($array as $k=>$v) { if(is_array($v)) { if($k != $ok) { $s .= LF."[$k]".LF; $ok = $k; } $s .= write_ini_file($v,""); }else { if(trim($v) != $v || strstr($v,"[")) $v = "\"$v\""; $s .= "$k = $v".LF; } } if($filename == "") return $s; else { $fp = fopen($filename,"w"); fwrite($fp,$s); fclose($fp); }}?>由于parse_ini_file有两种读出方式,所以写通用的set_ini_value存在一定的困难对于[system]DNS = www.sohu.comCount = 20[user]name = sssage = 301.parse_ini_file("test.ini",true)得到<?php$ar1 = parse_ini_file("test.ini",true);print_r($ar1);?>Array( [system] => Array ( [DNS] => www.sohu.com [Count] => 20 ) [user] => Array ( [name] => sss [age] => 30 ))2.parse_ini_file("test.ini")得到<?php$ar2 = parse_ini_file("test.ini");print_r($ar2);?>Array( [DNS] => www.sohu.com [Count] => 20 [name] => sss [age] => 30)所以回写后的结果也不一样<?phpwrite_ini_file($ar1,"test1.ini");write_ini_file($ar2,"test2.ini");?>test1.ini[system]DNS = www.sohu.comCount = 20[user]name = sssage = 30test2.iniDNS = www.sohu.comCount = 20name = sssage = 30你可以根据具体情况来确定使用方式 谢谢 xuzuning(唠叨),也谢谢 bflovesnow(北风) 的提示呵呵,结贴。 foreach 问题求解 php实现本地下载功能的问题 PHP中数据库查询并显示 phpmyadmin 大数据量的文件和数据比对算法 IBM数据库面试题,请求大牛帮忙啊 $k = "10"; $e = ">"; $v = "5"; ( $k > $v )的表达式该怎么写啊?主要是$e是动态的。 求助树状显示的系列代码 请教用PHP处理繁重任务即时显示结果的问题 关于header的问题 求助!不同分辨率下的显示效果~~ 刚做好一个网站,请大家帮忙测试一下。
parse_str
parse_url ..。都是ini格式的处理函数
能不能给出你说的函数的具体用法呀,
而且好像这些函数都只能读取ini文件的值,
那么如何写ini文件的值呢?比如,我想写DNS的值
set_ini_value(option, optionvalue)
类似的用法?
目前尚未发现写ini文件的函数,所以只好自己写一个了
<?php
define("LF","\r\n");function write_ini_file($array,$filename) {
$ok = "";
$s = "";
foreach($array as $k=>$v) {
if(is_array($v)) {
if($k != $ok) {
$s .= LF."[$k]".LF;
$ok = $k;
}
$s .= write_ini_file($v,"");
}else {
if(trim($v) != $v || strstr($v,"["))
$v = "\"$v\"";
$s .= "$k = $v".LF;
}
}
if($filename == "")
return $s;
else {
$fp = fopen($filename,"w");
fwrite($fp,$s);
fclose($fp);
}
}
?>
由于parse_ini_file有两种读出方式,所以写通用的set_ini_value存在一定的困难
对于
[system]
DNS = www.sohu.com
Count = 20[user]
name = sss
age = 30
1.parse_ini_file("test.ini",true)得到
<?php
$ar1 = parse_ini_file("test.ini",true);
print_r($ar1);
?>
Array
(
[system] => Array
(
[DNS] => www.sohu.com
[Count] => 20
) [user] => Array
(
[name] => sss
[age] => 30
)
)2.parse_ini_file("test.ini")得到
<?php
$ar2 = parse_ini_file("test.ini");
print_r($ar2);
?>
Array
(
[DNS] => www.sohu.com
[Count] => 20
[name] => sss
[age] => 30
)
所以回写后的结果也不一样<?php
write_ini_file($ar1,"test1.ini");
write_ini_file($ar2,"test2.ini");
?>
test1.ini
[system]
DNS = www.sohu.com
Count = 20[user]
name = sss
age = 30test2.ini
DNS = www.sohu.com
Count = 20
name = sss
age = 30你可以根据具体情况来确定使用方式
呵呵,结贴。