Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
ssh,以PHP正则表达式友好的方式显示文件_Php_Ssh - Fatal编程技术网

ssh,以PHP正则表达式友好的方式显示文件

ssh,以PHP正则表达式友好的方式显示文件,php,ssh,Php,Ssh,目标是拥有一个文件数组,其中包含自己行中的每个文件。执行的ssh命令如下所示: ls 还给我一根线。我尝试使用一个或多个空格进行正则表达式拆分,但它会破坏包含空格的文件,我不希望这样 上述命令返回的字符串如下所示: 29.jpg 30.jpg 31.jpg 38.jpg 38_1.jpg 39.jpg 39_1.jpg 40.jpg 40_1.jpg 4193FC36BA6-E284-45FB-B740-E5C7CAE3C72C Banner jr and sr2.jpg Banner jr

目标是拥有一个文件数组,其中包含自己行中的每个文件。执行的ssh命令如下所示:

ls
还给我一根线。我尝试使用一个或多个空格进行正则表达式拆分,但它会破坏包含空格的文件,我不希望这样

上述命令返回的字符串如下所示:

29.jpg 30.jpg 31.jpg 38.jpg 38_1.jpg 39.jpg 39_1.jpg 40.jpg 40_1.jpg 4193FC36BA6-E284-45FB-B740-E5C7CAE3C72C Banner jr and sr2.jpg Banner jr and sr2_1.jpg ImSy00005582.CR2 ImSy00005582_1.CR2 ImSy00005587.jpg
我只是想找到一种防弹的方法,让每个文件/目录/任何东西都在一个数组中自己的行上

$files=preg_split('/\s+/',$file_string)没有给出我想要的东西


如果需要,我可以更改上面的PHP代码和ls命令,但我需要关于如何更改的建议。

如果我理解正确,您可以从linux
ls
获取此字符串,并希望将其转换为数组,对吗? 你可以这样做:

$str = "29.jpg 30.jpg 31.jpg 38.jpg 38_1.jpg 39.jpg 39_1.jpg";
$arr = explode(' ', $str);
但我认为你不应该那样使用它。我说的是
ls
。 如果文件存储在服务器中,您可以执行以下操作:

function FullListing($path) {
    $path = $path . ($path[strlen($path) - 1] == '/' ? '' : '/');
    $dh = @opendir($path);
    $arr = array();
    while ($ent = @readdir($dh)) {
        if ($ent !== '.') {
            $filePath = realpath($path . $ent);
            $tmp = array('name' => $ent, 'type' => filetype($filePath), 'path' => $filePath, 'size' => ToKB(filesize($filePath)));
            array_push($arr, $tmp);
        }
    }
    return $arr;
}
此函数将返回数组数组,其中包含文件名、文件路径、文件类型和大小。把你不需要的东西拿走,给你