无法从 scandir 数组中删除“../”..
Cannot remove "."/".." from scandir array
我正在使用 scandir 将一些文件名放入数组中,然后尝试使用 if stmt 对“.”进行切片。和数组中的“..”(如果它们存在),但这不起作用所以我尝试仅在变量不是“..”或“.”时回显图像。那没有用。下面的示例代码:
if ($pages[$pageIndex] == "." || $pages[$pageIndex] == "..") {
array_slice($pages, 0, 2);
print_r($pages);
}
# And
while ($i < $pagesLength) {
if ($pages[$pageIndex] != "." || $pages[$pageIndex] != "..") {
echo "<img src='series/series_" . rawurlencode($_GET['series']) . "/series_" . rawurlencode($newLink) . "/" . rawurlencode($pages[$pageIndex]) . "'>";
$pageIndex = $pageIndex + 1;
$i++;
}
} }
无论我做什么他们都留下来,我怎样才能摆脱他们?
数组内容:
使用从第 2 行开始的 for
循环来跳过 .
/ ..
。
for ($i = 2; $i <= $pagesLength; $i++) {
// do something
}
去除任何隐藏文件的好方法是:
$pages = preg_grep('/^(?!\.{1,2}$)/', $pages);
另一种快速方法是使用 array_diff()
.
$pages = array_diff($pages, array('.', '..'));
我正在使用 scandir 将一些文件名放入数组中,然后尝试使用 if stmt 对“.”进行切片。和数组中的“..”(如果它们存在),但这不起作用所以我尝试仅在变量不是“..”或“.”时回显图像。那没有用。下面的示例代码:
if ($pages[$pageIndex] == "." || $pages[$pageIndex] == "..") {
array_slice($pages, 0, 2);
print_r($pages);
}
# And
while ($i < $pagesLength) {
if ($pages[$pageIndex] != "." || $pages[$pageIndex] != "..") {
echo "<img src='series/series_" . rawurlencode($_GET['series']) . "/series_" . rawurlencode($newLink) . "/" . rawurlencode($pages[$pageIndex]) . "'>";
$pageIndex = $pageIndex + 1;
$i++;
}
} }
无论我做什么他们都留下来,我怎样才能摆脱他们?
数组内容:
使用从第 2 行开始的 for
循环来跳过 .
/ ..
。
for ($i = 2; $i <= $pagesLength; $i++) {
// do something
}
去除任何隐藏文件的好方法是:
$pages = preg_grep('/^(?!\.{1,2}$)/', $pages);
另一种快速方法是使用 array_diff()
.
$pages = array_diff($pages, array('.', '..'));