I’ve been working more and more with jQuery and plugins that go with it and it can be a pain to keep going back to the code and adding another <script>
tag for each of these and then removing it again when you find out it isn’t quite what you needed. I came up with a solution to look in a “js” folder and create the correct tags for loading the files. Then i extended this to do CSS files as well. All you need to do is drop js/css files into “js” and “css” directories and the page you have placed the PHP code onto will load those files. To disable a file, just delete it or move it into a subfolder. Oh, you are worried about loading order you say? Since readdir()
lists the files in alphabetical order you can rename your files using numbers (01-jquery.js, 02-jquery-plugin.js, 03-global.js, etc.) to adjust the loading order. If you find any issues leave a comment to help others figure it out. Hope you find it useful in some application.
Directory Structure
css
02-morestyles.css
03-custom.css
js
02-jquery.plugin.min.js
03-custom.js
index.php
Code
Place the following code just before your document’s closing </head>
tag.
' . "\n";
}
}
closedir($handle);
echo $js;
}
// FOR CSS FILES
$css = '';
$handle = '';
$file = '';
// open the "css" directory
if ($handle = opendir('css')) {
// list directory contents
while (false !== ($file = readdir($handle))) {
// only grab file names
if (is_file('css/' . $file)) {
// insert HTML code for loading Javascript files
$css .= '' . "\n";
}
}
closedir($handle);
echo $css;
}
?>
Result
Dynamically Load CSS and JS files using PHP
Hello World!
Notes
This code will not search subdirectories for files to load. This code also doesn’t help when you are using a WYSIWYG editor such as Adobe Dreamweaver that will look for JS/CSS links in the HTML header and load the files. These programs don’t run the PHP code and therefore don’t know what JS/CSS files are suppose to be loaded. You may need to adjust the path to the “js” and “css” directories based on the location of the page you enter the code onto.