AntonM Posted March 5, 2015 Share Posted March 5, 2015 Hello, I'm having a hard time trying to make my code work. How should I go about when I want to echo an array (name, type, size and lastmod) if the user types a path for a directory? I have tried "foreach($results as $res) echo $res" but that obviously doesn't work, or maybe I'm trying to insert it at the wrong place in the code? Then I search on the net and found that you instead should insert:"echo $results["name"]."".$results["type"]... etc, and tried to insert it right after the array. But that doesn't work eiter. So now I'm stuck. <?php function getDirectoryList ($directory) { $results = array(); $handler = opendir($directory); while ($file = readdir($handler)) { $results[] = array( "name" => "$file", "type" => mime_content_typ("$file"), "size" => filesize("$file"), "lastmod" => filemtime("$file") ); } closedir($handler); return $results; } ?> <html> <body> <form method="post" action="getdirlist.php"> explore /dir/ <input type="text" name="dir"> <input type="submit" value="show"> </form> <? if(isset($_POST['dir'])) { $dirlist = getDirectoryList($_POST['dir']); } ?> </body> </html> Quote Link to comment https://forums.phpfreaks.com/topic/295117-echo-array/ Share on other sites More sharing options...
Ch0cu3r Posted March 5, 2015 Share Posted March 5, 2015 (edited) You need to loop over the array returned by getDirectoryList() function. Then you can echo the name, type, size and lastmod info for each file. Example if(isset($_POST['dir'])) { $dirlist = getDirectoryList($_POST['dir']); // loop over the array of files returned by getDirectoryList foreach($dirlist as $file) { echo $file['name'] . ' - ' . $file['type'] . ' - ' . $file['size'] . ' - ' . $file['lastmod'] . '<br />'; } } Edited March 5, 2015 by Ch0cu3r Quote Link to comment https://forums.phpfreaks.com/topic/295117-echo-array/#findComment-1507617 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.