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(北风) 的提示呵呵,结贴。 php 如何返回当前运行状态 php 遍历 a 标签 昨天微博看见有人出了一道题 截取字符串,然后放进数组里面 请教PHP 条件查询(较复杂) 后 更新数据库 用system执行php文件后面加参数如何接受 Appserv和分别安装Apatche+Mysql+Php那种更适合假设PHP服务器运行环境? 请问这里的高手,youtube.com这个刚被GOOGLE收购的网站是用什么语言写的 怎么在网页上查询服务器上文件 用php+JS制作二级关联菜单,不一样的问题。请帮忙 selected 求助!不同分辨率下的显示效果~~ 刚做好一个网站,请大家帮忙测试一下。
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你可以根据具体情况来确定使用方式
呵呵,结贴。