Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的Awk等价物_Php_Arrays_File_Awk_Gpio - Fatal编程技术网

PHP中的Awk等价物

PHP中的Awk等价物,php,arrays,file,awk,gpio,Php,Arrays,File,Awk,Gpio,我正在尝试让我的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('

我正在尝试让我的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];
}
$conf=file('/etc/gpio.conf',file\u SKIP\u EMPTY\u line);

对于($i=1;$i给你,试一试:

$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 />";
  }
$conf=file('/etc/gpio.conf',file\u SKIP\u EMPTY\u line);

对于($i=1;$i找到了一种方法,使用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] ";
}
$conf=file('/etc/gpio.conf',file\u SKIP\u EMPTY\u line);

对于($i=1;$i同样,如果数组中实际上不需要它们,则可以将list()与explode()结合使用。如果这些值仅存在于此循环迭代中,则如果它们具有有意义的名称,而不是$temp_数组[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";
}
$conf=file('/etc/gpio.conf',file\u SKIP\u EMPTY\u line);
对于($i=1;$i<3;$i++)
{
回声“conf$i:$conf[$i]”;
名单(
$GPIO、$Direction、$Active\u low、$Default\u value、$web\u page、$Description
)=分解(“;”,$conf[$i]);
回显“GPIO:$GPIO\n”;
echo“方向:$Direction\n”;
echo“web:$web\u页面\n”;
}

找到了一种方法,使用explode命令:$conf=file('/etc/gpio.conf',file\u SKIP\u EMPTY\u line);for($i=1;$i将其作为答案发布并接受。或者,如果您不再需要答案,只需删除您的问题。或者我可以将其作为答案发布,我可以使用布朗尼点数;-)如你所愿,我只是无法回答自己,因为stackoverflow需要我8小时才能回答so@user2433937干杯