{"id":11587,"date":"2024-03-14T14:23:21","date_gmt":"2024-03-14T14:23:21","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/"},"modified":"2025-08-04T13:58:12","modified_gmt":"2025-08-04T13:58:12","slug":"how-to-iterate-through-files-in-a-folder-using-php","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/","title":{"rendered":"PHP Directory Files: Iterate &#038; List Guide"},"content":{"rendered":"<p>In PHP, you can use the scandir() function to list files in a folder.<\/p>\n<p>Below is a straightforward example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-variable\">$dir<\/span> = <span class=\"hljs-string\">\"path\/to\/directory\"<\/span>;\r\n\r\n<span class=\"hljs-comment\">\/\/ \u6253\u5f00\u76ee\u5f55<\/span>\r\n<span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-title function_ invoke__\">is_dir<\/span>(<span class=\"hljs-variable\">$dir<\/span>)){\r\n    <span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-variable\">$dh<\/span> = <span class=\"hljs-title function_ invoke__\">opendir<\/span>(<span class=\"hljs-variable\">$dir<\/span>)){\r\n        <span class=\"hljs-comment\">\/\/ \u8bfb\u53d6\u76ee\u5f55\u4e2d\u7684\u6587\u4ef6<\/span>\r\n        <span class=\"hljs-keyword\">while<\/span> ((<span class=\"hljs-variable\">$file<\/span> = <span class=\"hljs-title function_ invoke__\">readdir<\/span>(<span class=\"hljs-variable\">$dh<\/span>)) !== <span class=\"hljs-literal\">false<\/span>){\r\n            <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"filename: <span class=\"hljs-subst\">$file<\/span> : filetype: \"<\/span> . <span class=\"hljs-title function_ invoke__\">filetype<\/span>(<span class=\"hljs-variable\">$dir<\/span> . <span class=\"hljs-variable\">$file<\/span>) . <span class=\"hljs-string\">\"&lt;br&gt;\"<\/span>;\r\n        }\r\n        <span class=\"hljs-comment\">\/\/ \u5173\u95ed\u76ee\u5f55<\/span>\r\n        <span class=\"hljs-title function_ invoke__\">closedir<\/span>(<span class=\"hljs-variable\">$dh<\/span>);\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example above, the is_dir() function is first used to check if the specified directory exists. Then, the opendir() function is used to open the directory, the readdir() function is used to read the files in the directory, and the filetype() function is used to get the file types. Finally, the closedir() function is used to close the directory.<\/p>\n<p>Please replace path\/to\/directory with the path of the directory you want to traverse.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In PHP, you can use the scandir() function to list files in a folder. Below is a straightforward example: $dir = &#8220;path\/to\/directory&#8221;; \/\/ \u6253\u5f00\u76ee\u5f55 if (is_dir($dir)){ if ($dh = opendir($dir)){ \/\/ \u8bfb\u53d6\u76ee\u5f55\u4e2d\u7684\u6587\u4ef6 while (($file = readdir($dh)) !== false){ echo &#8220;filename: $file : filetype: &#8221; . filetype($dir . $file) . &#8220;&lt;br&gt;&#8221;; } \/\/ \u5173\u95ed\u76ee\u5f55 closedir($dh); } [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[1129,14962,14961,3077,952],"class_list":["post-11587","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-directory-iteration","tag-list-files-php","tag-opendir-readdir","tag-php-file-handling","tag-php-filesystem"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP Directory Files: Iterate &amp; List Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to iterate through files in a folder using PHP opendir.readdir. Simple code example with best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP Directory Files: Iterate &amp; List Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how to iterate through files in a folder using PHP opendir.readdir. Simple code example with best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T14:23:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T13:58:12+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"PHP Directory Files: Iterate &#038; List Guide\",\"datePublished\":\"2024-03-14T14:23:21+00:00\",\"dateModified\":\"2025-08-04T13:58:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/\"},\"wordCount\":101,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"directory iteration\",\"list files PHP\",\"opendir readdir\",\"PHP file handling\",\"PHP filesystem\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/\",\"name\":\"PHP Directory Files: Iterate & List Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T14:23:21+00:00\",\"dateModified\":\"2025-08-04T13:58:12+00:00\",\"description\":\"Learn how to iterate through files in a folder using PHP opendir.readdir. Simple code example with best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP Directory Files: Iterate &#038; List Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP Directory Files: Iterate & List Guide - Blog - Silicon Cloud","description":"Learn how to iterate through files in a folder using PHP opendir.readdir. Simple code example with best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/","og_locale":"en_US","og_type":"article","og_title":"PHP Directory Files: Iterate & List Guide","og_description":"Learn how to iterate through files in a folder using PHP opendir.readdir. Simple code example with best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T14:23:21+00:00","article_modified_time":"2025-08-04T13:58:12+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"PHP Directory Files: Iterate &#038; List Guide","datePublished":"2024-03-14T14:23:21+00:00","dateModified":"2025-08-04T13:58:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/"},"wordCount":101,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["directory iteration","list files PHP","opendir readdir","PHP file handling","PHP filesystem"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/","name":"PHP Directory Files: Iterate & List Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T14:23:21+00:00","dateModified":"2025-08-04T13:58:12+00:00","description":"Learn how to iterate through files in a folder using PHP opendir.readdir. Simple code example with best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-iterate-through-files-in-a-folder-using-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP Directory Files: Iterate &#038; List Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=11587"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11587\/revisions"}],"predecessor-version":[{"id":155364,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11587\/revisions\/155364"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=11587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=11587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=11587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}