【问题标题】:Awk equivalent in PHPPHP 中的 awk 等价物
【发布时间】:2013-05-25 10:40:56
【问题描述】:

我正在尝试让我的 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 数组...

有什么想法/建议吗?

【问题讨论】:

  • 找到了方法,用explode命令:$conf=file('/etc/gpio.conf', FILE_SKIP_EMPTY_LINES); for ($i=1; $i "; $temp_array=explode(";", $conf[$i]); echo "GPIO: $temp_array[0]"; echo "web: $temp_array[4]
    "; }
  • 将其作为答案发布并接受。或者,如果您不再需要答案,请删除您的问题。
  • 或者我可以将其发布为答案,我可以使用布朗尼积分 ;-)
  • 如你所愿,我无法回答自己,因为 stackoverflow 需要我 8 小时才能这样做
  • @user2433937 完成 ;-) 干杯

标签: php arrays file awk gpio


【解决方案1】:

给你,试一试:

$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 />";
  }

干杯

【讨论】:

    【解决方案2】:

    此外,如果您实际上不需要将它们放在数组中,则可以将 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";
    }
    

    【讨论】:

      【解决方案3】:

      找到了方法,用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] ";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-06
        • 2011-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-08
        相关资源
        最近更新 更多