ssh,以PHP正则表达式友好的方式显示文件
目标是拥有一个文件数组,其中包含自己行中的每个文件。执行的ssh命令如下所示: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
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命令,但我需要关于如何更改的建议。如果我理解正确,您可以从linuxls
获取此字符串,并希望将其转换为数组,对吗?
你可以这样做:
$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;
}
此函数将返回数组数组,其中包含文件名、文件路径、文件类型和大小。把你不需要的东西拿走,给你