2012-07-03 51 views
-1

Possible Duplicate:
Converting ereg expressions to preg解析cfg文件用php

遇到困难,我完全是新来解析CFG文件到PHP。还试图搜索几个网站,我发现这个exmaple。但它有一些错误。我不明白我该如何解决它们。
我有一个名为my_config.cfg的.cfg文件。它具有如下所示的信息。

# ATA/IDE/MFM/RLL support 
# 
CONFIG_IDE=y 

# 
# IDE, ATA and ATAPI Block devices 
# 
CONFIG_BLK_DEV_IDE=y 
CONFIG_BLK_DEV_IDEDISK=y 
CONFIG_BLK_DEV_IDECD=n 

我想解析它在PHP中。

代码:

但我得到的错误:

Deprecated: Function ereg() is deprecated in C:\xampp\htdocs\test.php on line 9 
CONFIG_IDE is set<br /> 

任何解决方案???

+0

有什么要求? ereg函数已被弃用,您不应该使用它们。 –

回答

2

该弃用警告表明您应该找到不同的功能来执行您所需的操作。有关PHP's ereg documentation page的更多信息。 preg_match()怎么样?

if ($line && !preg_match("/^$comment/", $line)) { 
    ... 
} 

但是,而不是使用正则表达式,你也许可以用substr()脱身,像这样:

if ($line && substr($line, 0, 1) != $comment) { 
    ... 
} 

在你每次循环射击了正则表达式匹配子系统是昂贵,性能明智。 substr()是便宜!

顺便说一下,在这里使用parse_ini_file()怎么样?在我的代码测试和你的示例Linux内核配置代码片段中,它产生了相同的结果,但是使用了1行代码,而不是12行。

+0

我尝试过'preg_match',但仍有一些错误:'警告:preg_match()[function.preg-match]:没有结尾分隔符'^'在C:\中找到第9行的xampp \ htdocs \ test.php 注意:未定义的偏移量:1位于C:\ xampp \ htdocs \ test中。12号线上的PHP' – ashah142

+0

Oopse,我忘了分隔符。我确定了我的答案。现在应该工作。祝你好运! – curtisdf

+0

感谢'curtisdf'和'sachleen'为你的帮助...它的工作... – ashah142

1

你有&amp;&amp; ......这应该是&&

if ($line && !ereg("^$comment", $line)) { 

在PHP 5.3.0中,ereg已被弃用。您应该使用preg_match。语法对你来说是一样的。

+0

我试过,但我得到这个错误。弃用:函数ereg()在第9行的C:\ xampp \ htdocs \ test.php中弃用012, 弃用:函数ereg()在第9行中的C:\ xampp \ htdocs \ test.php中弃用 弃用:函数ereg()在第9行的C:\ xampp \ htdocs \ test.php中弃用 弃用:函数ereg()在第9行的C:\ xampp \ htdocs \ test.php中被弃用 不推荐使用:函数EREG()被弃用在C:\ XAMPP \ htdocs中\上线test.php的9 推荐使用:功能EREG()被弃用在C:\ XAMPP \ htdocs中在第9行 CONFIG_IDE设置\ test.php的
' – ashah142

+0

改用'preg_match'。查看更新的答案。 – sachleen

+0

好的。我会尝试preg_match ...谢谢'sachleen' – ashah142