有没有什么办法让仅与扩展的图像jpeg,png,gif等同时使用
$dir = '/tmp';
$files1 = scandir($dir);
Run Code Online (Sandbox Code Playgroud) 我使用以下代码获取目录中的图像列表:
$files = scandir($imagepath);
Run Code Online (Sandbox Code Playgroud)
但$files也包括隐藏文件.我该如何排除它们?
我试图让scandir();函数超出其书面限制,我需要的不仅仅是它目前支持的alpha排序.我需要scandir();按修改日期对结果进行排序.
我已经尝试了一些我在这里找到的解决方案以及来自不同网站的一些其他解决方案,但没有一个对我有用,所以我认为在这里发布是合理的.
到目前为止我尝试过的是:
function scan_dir($dir)
{
$files_array = scandir($dir);
$img_array = array();
$img_dsort = array();
$final_array = array();
foreach($files_array as $file)
{
if(($file != ".") && ($file != "..") && ($file != ".svn") && ($file != ".htaccess"))
{
$img_array[] = $file;
$img_dsort[] = filemtime($dir . '/' . $file);
}
}
$merge_arrays = array_combine($img_dsort, $img_array);
krsort($merge_arrays);
foreach($merge_arrays as $key => $value)
{
$final_array[] = $value;
}
return (is_array($final_array)) ? $final_array : false;
}
Run Code Online (Sandbox Code Playgroud)
但是,这似乎对我不起作用,它只返回3个结果,但它应该返回16个结果,因为文件夹中有16个图像.
我有一个数组,我正从SCANDIR回来,但它包含了"."和".."我不希望它.
我的代码:
$indir = scandir('../pages');
$fileextensions = array(".", "php", "html", "htm", "shtml");
$replaceextensions = str_replace($fileextensions, "", $indir);
Run Code Online (Sandbox Code Playgroud)
我正在对文件扩展名进行字符串替换,从而导致[0]和[1]显示为空,但它们是"."和".."
array(4) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(4) "test"
[3]=>
string(4) "home"
}
Run Code Online (Sandbox Code Playgroud)
我将如何删除"."并".."从阵列?
可能重复:
获取目录中的文件
PHP:scandir()太慢了
我有一个包含数万个文件的目录,我想在页面上显示这些文件的列表.我尝试用scandir做它,它需要永远.实现这一目标的有效方法是什么?
我使用opendir()和readdir()在目录中显示文件名.但他们是无序的.我怎么能对它们进行排序?语言是C.
AttributeError当我使用python文档中的示例代码(这里)时引发了一个问题.示例代码如下:
with os.scandir(path) as it:
for entry in it:
if not entry.name.startswith('.') and entry.is_file():
print(entry.name)
Run Code Online (Sandbox Code Playgroud)
结果是AttributeError:
D:\Programming>test.py
Traceback (most recent call last):
File "D:\Programming\test.py", line 3, in <module>
with os.scandir() as it:
AttributeError: __exit__
Run Code Online (Sandbox Code Playgroud)
虽然,分配os.scandir()给变量工作正常.有人能告诉我我错过了什么吗?
我必须创建一个将所有子文件夹列入文件夹的函数.我有一个无文件过滤器,但该函数使用scandir()进行列表.这使得应用程序非常慢.是否有scandir()的替代品,甚至是非原生的php函数?提前致谢!
做了一些搜索,但似乎无法找到我正在寻找的确切答案.
我想使用'scandir($ dir)'来输入带有编号文件名的文件,但要正确排序.例如,文件名是:
1-something.ext
2-something-else.ext
3-a-third-name.ext
.
.
.
10-another-thing.ext
11-more-names.ext
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是10-a-fourth-thing.ext将显示在2-something-else.ext之前.我想找到一种更好的方法来解决这个问题,而不是在所有文件名前面引入前导'0'.
有什么想法吗?谢谢.
我需要帮助阅读文件夹和打开/输出csv数据,我已经使用了其他人写的例子,但没有一个对我有用.
我目前拥有的是这个,但它不输出文件:
$files = scandir($PathToCreate.$version."/"); //scan the folder
foreach($files as $file) { //for each file in the folder
//The following is another example I found but does not output anything I just need to open each file and be able to output / target specific data
$csv = array();
$lines = file($file, FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
$csv[$key] = str_getcsv($value);
}
print_r($csv)
}
Run Code Online (Sandbox Code Playgroud) scandir ×10
php ×8
sorting ×2
arrays ×1
c ×1
csv ×1
fgetcsv ×1
file ×1
hidden-files ×1
image-file ×1
linux ×1
opencsv ×1
python ×1
python-3.x ×1