newguycanada Posted August 30, 2007 Share Posted August 30, 2007 Hi I'm really new to PHP and I've got an include on a page I'm working on. <?php $links = array('home.htm', 'upcomingevents.htm', 'pastevents.php', 'outdoors.php', 'community.php', 'heritage.php', 'projects.php', 'contact.php', 'team.php', 'lochmore.php', 'one.php', 'register.php', 'formsubmitted.php', 'homesites.php'); // define the array - links if (isset($_GET['p'])) { if(in_array($p,$links)) { include($p); } else { echo '<div class="headline"> 404 - Page Not Found</div>'; exit(); }; } else { include('home.htm'); }; ?> If possible, I want to remove the $links array from the code and replace it with something so that only files from the root directory can be included. I don't want to have to add to the array every time I add a page, I want to be able to just put it in the directory on my server. Link to comment https://forums.phpfreaks.com/topic/67363-include-question/ Share on other sites More sharing options...
hitman6003 Posted August 30, 2007 Share Posted August 30, 2007 Use the dir functionality to read the file names into an array: <?php $d = dir("."); while (false !== ($file= $d->read())) { if (substr($file, -4, 4) == ".htm" || substr($file, -4, 4) == ".php") { $links[] = $file; } } $d->close(); ?> Link to comment https://forums.phpfreaks.com/topic/67363-include-question/#findComment-337963 Share on other sites More sharing options...
GingerRobot Posted August 30, 2007 Share Posted August 30, 2007 You could also use the glob() function $links = glob('*.*'); Link to comment https://forums.phpfreaks.com/topic/67363-include-question/#findComment-337965 Share on other sites More sharing options...
newguycanada Posted August 30, 2007 Author Share Posted August 30, 2007 Wow that worked well. As I said I'm new at this and still trying to figure it out. Link to comment https://forums.phpfreaks.com/topic/67363-include-question/#findComment-337966 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.