首页 > 解决方案 > 将数组从 BASH 传递到 PHP

问题描述

我正在使用 shell 脚本列出我桌面上的所有文件。下面是我的shell脚本:

 #! /bin/bash

myFiles=`dir /home/chb-pc/Desktop`
#echo $myFiles;

count=0
for f in $myFiles
do 
    #echo $f 
    read myArray[$count] = f
    `expr $count + 1`
done

echo myArray

上面的脚本将列出所有文件的文件名。我需要将输出存储在一个变量中并将其发送到 PHP,在那里我将循环该变量中的每个文件并做一些事情。

下面是我的 PHP 脚本:

<?php

$output = shell_exec("sh /home/chb-pc/Desktop/files.sh");

foreach ($output as $files) {
    echo $files . "<br>";
}
?>

我知道我的 shell 脚本看起来不正确,但我尝试了各种语法但找不到正确的语法。

标签: phpbashshell

解决方案


只是避免同时使用两者,PHP 非常有能力列出一个目录:

<?php
$dir = '/home/chb-pc/Desktop';
foreach (new DirectoryIterator($dir) as $fileInfo) {
    if($fileInfo->isDot()) continue;
    echo $fileInfo->getFilename() . "\n";
}

见: http: //php.net/manual/en/class.directoryiterator.php


推荐阅读