Une étape relativement longue et redondante lors de la conception et développement d’une application web consiste à parcourir tous les répertoires de l’application pour vérifier s’il y avait bien un fichier “index” dedans (afin d’éviter les IndexOf, de voir les bannières du serveur etc…).
Il m’a donc été nécessaire de créer ce petit script tout bête, qui parcoure récursivement un répertoire donné, analyse tous les sous-répertoires en indiquant lesquels sont dotés d’un fichier “index”, et si le répertoire n’en possède pas, le script permet d’en créer un de votre choix et automatiquement dans le répertoire concerné.
[php]&amp;amp;amp;lt;!DOCTYPE html PUBLIC &amp;amp;amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;amp;amp;quot; &amp;amp;amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;amp;amp;quot;&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;html xmlns=&amp;amp;amp;quot;http://www.w3.org/1999/xhtml&amp;amp;amp;quot;&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;head&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;style&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
*{&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
font-family:verdana;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
font-size:10px;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;.error{&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
font-weight:bold;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
color:#AA0000;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;.success{&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
font-weight:bold;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
color:#00AA00;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/style&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/head&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;body&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;form action=&amp;amp;amp;quot;&amp;amp;amp;quot; method=&amp;amp;amp;quot;post&amp;amp;amp;quot;&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;table&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;tr&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;td&amp;amp;amp;gt;Absolute path to analyze :&amp;amp;amp;lt;/td&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;td&amp;amp;amp;gt;&amp;amp;amp;lt;input type=&amp;amp;amp;quot;text&amp;amp;amp;quot; name=&amp;amp;amp;quot;path&amp;amp;amp;quot; size=&amp;amp;amp;quot;100&amp;amp;amp;quot; value=&amp;amp;amp;quot;&amp;amp;amp;lt;?php echo $_SERVER[&amp;amp;amp;quot;DOCUMENT_ROOT&amp;amp;amp;quot;];?&amp;amp;amp;gt;&amp;amp;amp;quot; /&amp;amp;amp;gt;&amp;amp;amp;lt;/td&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/tr&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/table&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;input type=&amp;amp;amp;quot;submit&amp;amp;amp;quot; value=&amp;amp;amp;quot;Run&amp;amp;amp;quot; /&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/form&amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;lt;?php&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;function printDirectory($folder, $indexExists){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
echo &amp;amp;amp;quot;&amp;amp;amp;lt;li class=’&amp;amp;amp;quot; . ((!$indexExists) ? &amp;amp;amp;quot;error&amp;amp;amp;quot; : &amp;amp;amp;quot;success&amp;amp;amp;quot;) . &amp;amp;amp;quot;’&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;input type=’checkbox’ value=’$folder’ name=’folders[]’ &amp;amp;amp;quot; . ((!$indexExists) ? &amp;amp;amp;quot;checked&amp;amp;amp;quot; : &amp;amp;amp;quot;&amp;amp;amp;quot;) . &amp;amp;amp;quot;/&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$folder&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/li&amp;amp;amp;gt;&amp;amp;amp;quot;;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;function fileWalker($luke){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$dp = @opendir($luke) or die(&amp;amp;amp;quot;Directory $luke doesn’t exist…&amp;amp;amp;quot;);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$indexExists = false;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$folders = array();&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;while($file = @readdir($dp)){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
if(in_array($file, array(&amp;amp;amp;quot;.&amp;amp;amp;quot;, &amp;amp;amp;quot;..&amp;amp;amp;quot;, &amp;amp;amp;quot;.svn&amp;amp;amp;quot;))) continue;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
if(is_dir($luke.’/’.$file))&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$folders[] = $luke.’/’.$file;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
else {&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
if(preg_match(&amp;amp;amp;quot;/^index\.(php|html|htm)$/i&amp;amp;amp;quot;, $file))&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$indexExists = true;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;printDirectory($luke, $indexExists);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
@closedir($dp);&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;foreach($folders as $folder){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
echo &amp;amp;amp;quot;&amp;amp;amp;lt;ul&amp;amp;amp;gt;&amp;amp;amp;quot;;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
fileWalker($folder);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
echo &amp;amp;amp;quot;&amp;amp;amp;lt;/ul&amp;amp;amp;gt;&amp;amp;amp;quot;;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;}&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;if(isset($_POST[&amp;amp;amp;quot;path&amp;amp;amp;quot;])){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
echo &amp;amp;amp;quot;&amp;amp;amp;lt;form action=” method=’post’&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;table&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;tr&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;td&amp;amp;amp;gt;Content of index.html :&amp;amp;amp;lt;/td&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;td&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;textarea cols=’100′ rows=’10’ name=’content’&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;html&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;head&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;meta http-equiv=’Content-Type’ content=’text/html; charset=UTF-8’&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/head&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;body&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;script type=’text/javascript’&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
setTimeout(\&amp;amp;amp;quot;window.location=’/’\&amp;amp;amp;quot;,1);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/script&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/body&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/html&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/textarea&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/td&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/tr&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/table&amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;lt;input type=’submit’ value=’Create Indexes’ /&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;ul&amp;amp;amp;gt;&amp;amp;amp;quot;;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
fileWalker(trim(strval($_POST[&amp;amp;amp;quot;path&amp;amp;amp;quot;])));&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
echo &amp;amp;amp;quot; &amp;amp;amp;lt;/ul&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;input type=’submit’ value=’Create Indexes’ /&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/form&amp;amp;amp;gt;&amp;amp;amp;quot;;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
} elseif(isset($_POST[&amp;amp;amp;quot;content&amp;amp;amp;quot;], $_POST[&amp;amp;amp;quot;folders&amp;amp;amp;quot;]) &amp;amp;amp;amp;&amp;amp;amp;amp; is_array($_POST[&amp;amp;amp;quot;folders&amp;amp;amp;quot;]) &amp;amp;amp;amp;&amp;amp;amp;amp; count($_POST[&amp;amp;amp;quot;folders&amp;amp;amp;quot;]) &amp;amp;amp;gt; 0){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$content = trim(strval($_POST[&amp;amp;amp;quot;content&amp;amp;amp;quot;]));&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
foreach($_POST[&amp;amp;amp;quot;folders&amp;amp;amp;quot;] as $folder){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$folder = trim(strval($folder));&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
if(is_dir($folder) &amp;amp;amp;amp;&amp;amp;amp;amp; is_writable($folder) &amp;amp;amp;amp;&amp;amp;amp;amp; !file_exists($folder.&amp;amp;amp;quot;/index.html&amp;amp;amp;quot;)){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
$fp = @fopen($folder.&amp;amp;amp;quot;/index.html&amp;amp;amp;quot;, &amp;amp;amp;quot;w&amp;amp;amp;quot;);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
if($fp){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
@fputs($fp, $content);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
echo &amp;amp;amp;quot;&amp;amp;amp;lt;div class=’success’&amp;amp;amp;gt;$folder&amp;amp;amp;lt;/div&amp;amp;amp;gt;&amp;amp;amp;quot;;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
@fclose($fp);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
} else&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
echo &amp;amp;amp;quot;&amp;amp;amp;lt;div class=’error’&amp;amp;amp;gt;$folder&amp;amp;amp;lt;/div&amp;amp;amp;gt;&amp;amp;amp;quot;;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
}&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;?&amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;lt;/body&amp;amp;amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;amp;lt;/html&amp;amp;amp;gt;[/php]