1

我正在尝试让我的 php 脚本读取配置文件。我可以使用 file 命令打开文件并将其每一行加载到每个数组位置。但是,现在我需要分析每一行但找不到读取每个字段的方法,比如 awk 等价物。

配置文件是这样的:

GPIO; Direction; Active_low; Default_value; web_page; Description
1; out; 0; 0; yes; ficheiro1
2; out; 0; 0; yes; ficheiro2

我的 php 脚本是这样的:

$conf=file('/etc/gpio.conf', FILE_SKIP_EMPTY_LINES);
for ($i=1; $i <3; $i++)
{
 echo" conf $i: $conf[$i] <br />";
 $GPIO=$1stfield_of_conf[i];
 $Direction=$2ndfield_of_conf[i];
 $Active_low=$3rdfield_of_conf[i];
}

我需要的是类似 awk '{print $1}',但能够读取 PHP 数组...

有什么想法/建议吗?

4

3 回答 3

2

给你,试一试:

$conf=file('/etc/gpio.conf', FILE_SKIP_EMPTY_LINES);
    for ($i=1; $i <3; $i++)
  {
echo" conf $i: $conf[$i] <br />";
    $temp_array=explode(";", $conf[$i]);
echo "GPIO: $temp_array[0]";
echo "web: $temp_array[4] <br />";
  }

干杯

于 2013-05-30T02:30:24.733 回答
0

此外,如果您实际上不需要将它们放在数组中,则可以将 list() 与explode() 结合使用。如果这些值仅存在于此循环迭代中,那么如果它们具有有意义的名称,您可能会发现代码更具可读性,而不是 $temp_array[3]。

$conf = file('/etc/gpio.conf', FILE_SKIP_EMPTY_LINES);

for ( $i = 1; $i < 3; $i++ )
{
    echo" conf $i: $conf[$i] ";

    list(
        $GPIO, $Direction, $Active_low, $Default_value, $web_page, $Description
    ) = explode( ";", $conf[$i] );

    echo "GPIO: $GPIO\n";
    echo "Direction: $Direction\n";
    echo "web: $web_page\n";
}
于 2014-02-06T22:24:51.693 回答
0

找到了一种方法,使用explode命令:

$conf=file('/etc/gpio.conf', FILE_SKIP_EMPTY_LINES); 

for ($i=1; $i <3; $i++) 
{
 echo" conf $i: $conf[$i] ";
 $temp_array=explode(";", $conf[$i]); 
 echo "GPIO: $temp_array[0]"; 
 echo "web: $temp_array[4] ";
}
于 2014-01-03T20:49:13.830 回答