Tôi muốn đọc danh sách tên các tệp trong một thư mục trong trang web bằng cách sử dụng php. là có bất kỳ kịch bản đơn giản để đạt được nó?Cách đọc danh sách tệp từ thư mục bằng PHP?
Trả lời
Cách đơn giản nhất và thú vị nhất (IMO) là glob
foreach (glob("*.*") as $filename) {
echo $filename."<br />";
}
Nhưng cách tiêu chuẩn là sử dụng directory functions.
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: .".$file."<br />";
}
closedir($dh);
}
}
cũng là SPL DirectoryIterator methods Có. Nếu bạn quan tâm
Cảm ơn Olafur đã giúp rất nhiều .. –
Tôi không khuyên bạn nên Glob - bao giờ hết! Nó cực kỳ chậm, đặc biệt là với nhiều tập tin. Tôi sẽ sử dụng một trong những: FilesystemIterator, DirectoryIterator, RecursiveDirectoryIterator. – JREAM
Nếu bạn có vấn đề với việc tiếp cận với các đường dẫn, có lẽ bạn cần phải đặt này:
$root = $_SERVER['DOCUMENT_ROOT'];
$path = "/cv/";
// Open the folder
$dir_handle = @opendir($root . $path) or die("Unable to open $path");
Có một glob. Trong trang web này có bài viết tốt như thế nào để liệt kê các file theo cách rất đơn giản:
Lưu ý rằng các câu trả lời chỉ có liên kết không được khuyến khích, các câu trả lời SO phải là điểm kết thúc của một tìm kiếm cho một giải pháp (so với một điểm dừng khác của các tham chiếu, có xu hướng bị cũ theo thời gian). Vui lòng xem xét thêm bản tóm tắt độc lập tại đây, giữ liên kết dưới dạng tham chiếu. – kleopatra
Có chức năng này scandir():
$dir = 'dir';
$files = scandir($dir, 0);
for($i = 2; $i < count($files); $i++)
print $files[$i]."<br>";
Đây là những gì Tôi thích làm:
$files = array_values(array_filter(scandir($path), function($file) {
return !is_dir($file);
}));
foreach($files as $file){
echo $file;
}
Cần một sửa lỗi nhỏ: chức năng ($ file) sử dụng ($ path) {return! Is_dir ($ path. '/'. $ File); – Borgboy
Kiểm tra nhiều thư mục:
Thư mục_1 và thư mục_2 là tên thư mục, từ đó chúng tôi phải chọn tệp.
Định dạng $ là định dạng bắt buộc.
<?php
$arr = array("folder_1","folder_2");
$format = ".csv";
for($x=0;$x<count($arr);$x++){
$mm = $arr[$x];
foreach (glob("$mm/*$format") as $filename) {
echo "$filename size " . filesize($filename) . "<br>";
}
}
?>
<?php
$files = glob("images/*.*");
for ($i=0; $i<count($files); $i++) { // $i mean to start first files names.
$num = $files[$i];
echo '<img src="'.$num.'" />'."<br />\n";
}
?>
images/là nghĩa vào thư mục hình ảnh của bạn. Biến $ i = 0 đang tìm kiếm . tệp hình ảnh và sẽ bắt đầu tên tệp đầu tiên.
Vui lòng giải thích cách đoạn mã của bạn là câu trả lời cho câu hỏi của OP. – YSC
Bạn có thể sử dụng chức năng thư mục tiêu chuẩn
$dir = opendir('/tmp');
while ($file = readdir($dir)) {
if ($file == '.' || $file == '..') {
continue;
}
echo $file;
}
closedir($dir);
Ngoài ra còn có một cách thực sự đơn giản để làm điều này với sự giúp đỡ của các lớp RecursiveTreeIterator
, đã trả lời ở đây: https://stackoverflow.com/a/37548504/2032235
<html>
<head>
<title>Names</title>
</head>
<body style="background-color:powderblue;">
<form method='post' action='alex.php'>
<input type='text' name='name'>
<input type='submit' value='name'>
</form>
Enter Name:
<?php
if($_POST)
{
$Name = $_POST['name'];
$count = 0;
$fh=fopen("alex.txt",'a+') or die("failed to create");
while(!feof($fh))
{
$line = chop(fgets($fh));
if($line==$Name && $line!="")
$count=1;
}
if($count==0 && $Name!="")
{
fwrite($fh, "\r\n$Name");
}
else if($count!=0 && $line!="")
{
echo '<font color="red">'.$Name.', the name you entered is already in the list.</font><br><br>';
}
$count=0;
fseek($fh, 0);
while(!feof($fh))
{
$a = chop(fgets($fh));
echo $a.'<br>';
$count++;
}
if($count<=1)
echo '<br>There are no names in the list<br>';
fclose($fh);
}
?>
</body>
</html>
Trong khi mã này có thể trả lời câu hỏi, cung cấp ngữ cảnh bổ sung liên quan đến * cách * và/hoặc * lý do * giải quyết vấn đề sẽ cải thiện giá trị lâu dài của câu trả lời. – radoh
- 1. Cách lấy danh sách thư mục và tệp từ thư mục tài nguyên trong iPhone?
- 2. Lấy danh sách tệp từ thư mục SkyDrive (Windows Phone)
- 3. Danh sách tài nguyên trong thư mục tệp jar?
- 4. MATLAB - đọc tệp từ thư mục?
- 5. * FASTEST * danh sách thư mục
- 6. danh sách các lớp học theo thư mục/thư mục bằng cách sử dụng doxygen?
- 7. Danh sách thư mục Sharpssh
- 8. danh sách PHP tất cả các file trong thư mục
- 9. Danh sách nội dung của thư mục (php)
- 10. Cách đọc tên tệp đệ quy từ thư mục con bằng cách sử dụng LINQ
- 11. Cách lấy danh sách các tệp/thư mục của url thư mục trong java?
- 12. Đọc tệp từ thư mục bên trong tệp jar
- 13. Làm cách nào để có danh sách tất cả tên tệp trong thư mục bằng VB6?
- 14. Đọc danh sách chuỗi từ tệp tài nguyên
- 15. Làm thế nào tôi có thể lấy danh sách thư mục trước sau khi mở một tệp từ danh sách thư mục/tệp?
- 16. Bắt File và Danh sách thư mục từ xa Server trong PHP
- 17. Danh sách tất cả thư mục và thư mục con
- 18. Cách lấy danh sách tệp (*. Jpg) từ tất cả các thư mục?
- 19. Cách lấy danh sách tệp từ một thư mục cụ thể trong bộ nhớ trong?
- 20. Đọc tệp từ thư mục nội dung ném FileNotFoundException
- 21. Lấy danh sách các thư mục trong một thư mục
- 22. PHP + Wordpress - có được một danh sách các tập tin từ một thư mục
- 23. Shell: tìm tệp trong danh sách theo thư mục
- 24. Đọc một tệp từ thư mục tài nguyên
- 25. Sao chép danh sách tệp vào thư mục
- 26. Danh sách Php CHỈ các tệp trong kho lưu trữ zip (loại trừ các thư mục)
- 27. Tại sao danh sách thư mục chứa thư mục (.) Và thư mục mẹ (..) hiện tại?
- 28. Danh sách thư mục Parse HTTP
- 29. Liệt kê tất cả thư mục con và tệp trong thư mục bằng cách sử dụng php
- 30. Đọc các tập tin từ một thư mục trong Scala
Có bạn có thể đọc nó bằng cách sử dụng php, xin vui lòng đọc và sử dụng lớp học này Tôi chắc chắn Nó sẽ giúp rất nhiều. http://www.devbaba.com/2015/06/04/how-to-fetch-and-list-the-files-and-sub-directories-in-specific-directory/ – naCheex