aktuelle.kurse/old_m133/4_Modulinhalte_und_Uebungen/00-Anwendungen-Beispiele-Uebungen/PHP_Referenz/tipps_tricks/verzeichnisse/count_file.html
Müller Harald 507e5da390 muh
2022-05-13 11:53:50 +02:00

207 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Funktion zum Unterverzeichnisse / Dateien zählen</title>
<link rel="stylesheet" type="text/css" href="../../src/self.css">
<meta name="description" content="Zählt alle Dateien und Unterverzeichnisse">
<meta name="keywords" content="SELFPHP, PHP, Verzeichnis">
<meta name="author" content="Damir Enseleit, mail@selfphp3.de">
<meta name="DC.Contributer" content="Matthias Hupp, m.hupp@selfphp3.de">
<meta name="DC.Publisher" content="Damir Enseleit, mail@selfphp3.de">
<meta name="DC.Date" content="2003-02-27T12:18+01:00">
<meta name="DC.Identifier" content="http://www.selfphp.info">
<meta name="DC.Language" content="de">
<meta name="DC.Rights" content="../../editorial/index.php">
<meta name="SELF.Firstdate" content="2001-08-06T12:18+01:00">
<meta name="SELF.Version" content="1">
<meta name="SELF.Pagetype" content="Information">
<meta name="SELF.Path" content="SELFPHP == ../../index.php // Funktionsreferenz == ../index.php // Array-Funktionen == index.php">
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#FFEEDD" class="nav"><a class="an" name="top"><img src="../../src/refkap.gif" width="16" height="13" border="0" alt="Teil von"></a>
<a href="../../index.html"><b>SELFPHP</b></a>/<a href="../../navigation/index.html">Navigationshilfen</a>
<img src="../../src/refkap.gif" width="16" height="13" border="0" alt="Teil von">
<a href="../index.html"><b>Tipps &amp; Tricks</b></a> <img src="../../src/refkap.gif" width="16" height="13" border="0" alt="Teil von">
<a href="index.html"><b>Verzeichnisse</b></a></td>
</tr>
</table>
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#EEEEEE" class="doc" width="110"><img src="../../src/logo.gif" width="106" height="109" border="0" alt="SELFPHP"></td>
<td bgcolor="#EEEEEE" class="doc" valign="bottom" width="50%">
<h2>Funktion zum Unterverzeichnisse / Dateien z&auml;hlen</h2>
<td bgcolor="#EEEEEE" class="doc" valign="bottom" width="50%">&nbsp;
<tr>
<td bgcolor="#EEEEEE" class="doc" valign="top" align="center"> <img src="../../src/dokx.gif" width="30" height="20" vspace="6" border="0" alt="Informationsseite">
</td>
<td bgcolor="#FFFFFF" valign="top" nowrap colspan="2">
<p> <img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten">&nbsp;<a href="#autor"><b>Autor</b></a><br>
<img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten">&nbsp;<a href="#beispiel"><b>Beispiel</b></a><br>
<img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten">&nbsp;<a href="#beschreibung"><b>Beschreibung</b></a><br>
<img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten">&nbsp;<a href="#download"><b>Download</b></a><br>
</p>
</td>
</tr>
<tr>
<td colspan=3 bgcolor="#EEEEEE" class="doc"><a href="#bottom"><img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten"></a>&#160;</td>
</tr>
</table>
<h2 class="Sh2"><a class="an" name="autor">Autor</a></h2>
<table width="100%" cellpadding=10><tr>
<td class="xmpcode" bgcolor="#E4EEFF"><b>Name:</b> Matthias Hupp<br>
<b>Email:</b> <a href="mailto:Matthias Hupp <m.hupp@selfphp.info>">m.hupp@selfphp.info</a><br>
<b>Website:</b> <a href="http://www.selfphp.info" target="_blank">http://www.selfphp.info</a></td>
</tr></table>
<p>&nbsp;</p>
<table bgcolor="#EEEEEE" class="doc" width="100%"><tr><td>
<a href="#top"><img src="../../src/up.gif" width="14" height="10" border="0" alt="nach oben"></a><a href="#bottom"><img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten"></a>&#160;
</td></tr></table>
<h2 class="Sh2"><a class="an" name="beispiel">Beispiel</a></h2>
<img src="../../src/serverdok.gif" width="15" height="10"> <a href="http://www.selfphp.com/tipps_tricks/verzeichnisse/count_file_beispiel.php" target="_blank"><b>Anzeigebeispiel:
So sieht's aus (Online)</b></a><br>
<br>
<table width="100%" cellpadding=10 height="66">
<tr>
<td class="xmpcode" bgcolor="#E4EEFF" valign="top">
<code><font color="#000000">
<font color="#0000BB">&lt;?PHP
<br />&nbsp;&nbsp;</font><font color="#007700">function&nbsp;</font><font color="#0000BB">count_file</font><font color="#007700">(</font><font color="#0000BB">$dir</font><font color="#007700">)
<br />&nbsp;&nbsp;&nbsp;&nbsp;{
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// Ueberprueft ob das angegebene Verzeichnis existiert
<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#007700">if(</font><font color="#0000BB">is_dir</font><font color="#007700">(</font><font color="#0000BB">$dir</font><font color="#007700">))
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$afile</font><font color="#007700">[</font><font color="#0000BB">directory</font><font color="#007700">]=</font><font color="#0000BB">0</font><font color="#007700">;
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$afile</font><font color="#007700">[</font><font color="#0000BB">file</font><font color="#007700">]=</font><font color="#0000BB">0</font><font color="#007700">;
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">chdir</font><font color="#007700">(</font><font color="#0000BB">$dir</font><font color="#007700">);
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$handle</font><font color="#007700">=</font><font color="#0000BB">opendir</font><font color="#007700">(</font><font color="#DD0000">"."</font><font color="#007700">);
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(</font><font color="#0000BB">$file</font><font color="#007700">=</font><font color="#0000BB">readdir</font><font color="#007700">(</font><font color="#0000BB">$handle</font><font color="#007700">))
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// Handelt es sich bei $file um ein Unterverzeichnis?
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#007700">if(</font><font color="#0000BB">is_dir</font><font color="#007700">(</font><font color="#0000BB">$file</font><font color="#007700">)&nbsp;&amp;&amp;&nbsp;</font><font color="#0000BB">$file</font><font color="#007700">!=</font><font color="#DD0000">"."&nbsp;</font><font color="#007700">&amp;&amp;&nbsp;</font><font color="#0000BB">$file</font><font color="#007700">!=</font><font color="#DD0000">".."</font><font color="#007700">)
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// directory um eins erhoehen
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$afile</font><font color="#007700">[</font><font color="#0000BB">directory</font><font color="#007700">]++;
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// rekursiver Aufruf mit aktuellem Verzeichnis
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$y</font><font color="#007700">=</font><font color="#0000BB">count_file</font><font color="#007700">(</font><font color="#0000BB">$file</font><font color="#007700">);
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// Ergebnisse des rekursiven Aufrufs der Funktion zu
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// directory und file aufaddieren
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$afile</font><font color="#007700">[</font><font color="#0000BB">directory</font><font color="#007700">]+=</font><font color="#0000BB">$y</font><font color="#007700">[</font><font color="#0000BB">directory</font><font color="#007700">];
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$afile</font><font color="#007700">[</font><font color="#0000BB">file</font><font color="#007700">]+=</font><font color="#0000BB">$y</font><font color="#007700">[</font><font color="#0000BB">file</font><font color="#007700">];
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// Handelt es sich bei $file um eine Datei?
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#007700">if(</font><font color="#0000BB">is_file</font><font color="#007700">(</font><font color="#0000BB">$file</font><font color="#007700">))
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// file um eins erhoehen
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$afile</font><font color="#007700">[</font><font color="#0000BB">file</font><font color="#007700">]++;
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">// Verzeichnisstruktur zurueck gehen
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#007700">if(</font><font color="#0000BB">stristr</font><font color="#007700">(</font><font color="#0000BB">$dir</font><font color="#007700">,</font><font color="#DD0000">"../"</font><font color="#007700">))&nbsp;</font><font color="#0000BB">chdir</font><font color="#007700">(</font><font color="#0000BB">$_SERVER</font><font color="#007700">[</font><font color="#DD0000">"DOCUMENT_ROOT"</font><font color="#007700">].</font><font color="#0000BB">substr</font><font color="#007700">(</font><font color="#0000BB">$_SERVER</font><font color="#007700">[</font><font color="#DD0000">"PATH_INFO"</font><font color="#007700">],</font><font color="#0000BB">0</font><font color="#007700">,</font><font color="#0000BB">strrpos</font><font color="#007700">(</font><font color="#0000BB">$_SERVER</font><font color="#007700">[</font><font color="#DD0000">"PATH_INFO"</font><font color="#007700">],</font><font color="#DD0000">"/"</font><font color="#007700">)));
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif(</font><font color="#0000BB">$dir</font><font color="#007700">!=</font><font color="#DD0000">"."</font><font color="#007700">)&nbsp;</font><font color="#0000BB">chdir</font><font color="#007700">(</font><font color="#DD0000">"../"</font><font color="#007700">);
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">closedir</font><font color="#007700">(</font><font color="#0000BB">$handle</font><font color="#007700">);
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</font><font color="#0000BB">$afile</font><font color="#007700">;
<br />&nbsp;&nbsp;&nbsp;&nbsp;}
<br />
<br />&nbsp;&nbsp;</font><font color="#FF8000">// Aufruf der Funktion
<br />&nbsp;&nbsp;</font><font color="#0000BB">$dir</font><font color="#007700">=</font><font color="#DD0000">"."</font><font color="#007700">;
<br />&nbsp;&nbsp;</font><font color="#0000BB">$atest</font><font color="#007700">=</font><font color="#0000BB">count_file</font><font color="#007700">(</font><font color="#0000BB">$dir</font><font color="#007700">);
<br />&nbsp;&nbsp;echo</font><font color="#DD0000">"&lt;br /&gt;DIRECTORIES: "</font><font color="#007700">.</font><font color="#0000BB">$atest</font><font color="#007700">[</font><font color="#0000BB">directory</font><font color="#007700">];
<br />&nbsp;&nbsp;echo</font><font color="#DD0000">"&lt;br /&gt;FILES: "</font><font color="#007700">.</font><font color="#0000BB">$atest</font><font color="#007700">[</font><font color="#0000BB">file</font><font color="#007700">];
<br />&nbsp;&nbsp;echo</font><font color="#DD0000">"&lt;br /&gt;"</font><font color="#007700">;
<br />
<br />&nbsp;&nbsp;</font><font color="#0000BB">$dir</font><font color="#007700">=</font><font color="#DD0000">"../"</font><font color="#007700">;
<br />&nbsp;&nbsp;</font><font color="#0000BB">$atest</font><font color="#007700">=</font><font color="#0000BB">count_file</font><font color="#007700">(</font><font color="#0000BB">$dir</font><font color="#007700">);
<br />&nbsp;&nbsp;echo</font><font color="#DD0000">"&lt;br /&gt;DIRECTORIES: "</font><font color="#007700">.</font><font color="#0000BB">$atest</font><font color="#007700">[</font><font color="#0000BB">directory</font><font color="#007700">];
<br />&nbsp;&nbsp;echo</font><font color="#DD0000">"&lt;br /&gt;FILES: "</font><font color="#007700">.</font><font color="#0000BB">$atest</font><font color="#007700">[</font><font color="#0000BB">file</font><font color="#007700">];
<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code> </td>
</tr>
</table>
<p>&nbsp;</p>
<table bgcolor="#EEEEEE" class="doc" width="100%"><tr><td>
<a href="#top"><img src="../../src/up.gif" width="14" height="10" border="0" alt="nach oben"></a><a href="#bottom"><img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten"></a>&#160;
</td></tr></table>
<h2 class="Sh2"><a class="an" name="beschreibung">Beschreibung</a></h2>
<table width="100%" cellpadding=10 height="156">
<tr>
<td class="xmpcode" bgcolor="#E4EEFF" height="57" valign="top"><p>Die Funktion count_file() z&auml;hlt alle Dateien und Unterverzeichnisse des<br>Verzeichnisses $dir auf. Dabei kann es sich um das aktuelle Verzeichnis, ein<br>Unterverzeichnis oder ein &Uuml;bergeordnetes Verzeichnis handeln.<br><br>Als &Uuml;bergabeparameter wird ein Verzeichnis angeben. Ausgehend von dem<br>Verzeichnis aus dem die Funktion aufgerufen wird (aktuelles Verzeichnis).<br>Beispiele:<br>&quot;.&quot; aktuelles Verzeichnis<br>&quot;../../&quot; &Uuml;bergeordnetes Verzeichnis<br>&quot;beliebiger PFAD&quot; Unterverzeichnis<br><br>Das Ergebnis wird in Form eines assoziatives Arrays zur&uuml;ckgegeben, das folgende<br>Elemente enth&auml;lt:<br>directory Anzahl der Verzeichnisse<br>file Anzahl der Dateien</p></td>
</tr>
</table>
<p>&nbsp;</p>
<table bgcolor="#EEEEEE" class="doc" width="100%"><tr><td>
<a href="#top"><img src="../../src/up.gif" width="14" height="10" border="0" alt="nach oben"></a><a href="#bottom"><img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten"></a>&#160;
</td></tr></table>
<h2 class="Sh2"><a class="an" name="download">Download</a></h2>
<table width="100%" cellpadding=10 height="66">
<tr>
<td class="xmpcode" bgcolor="#E4EEFF" valign="top"> Der Download beeinhaltet
folgende Dateien:
<ul>
<li>count_file_beispiel.php</li>
<li>count_file_erklaerung.txt</li>
<li>README.TXT</li>
</ul>
<a href="count_file_beispiel.zip">Download starten</a></td>
</tr></table>
<p>&nbsp;</p>
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr><td colspan=2 bgcolor="#EEEEEE" class="doc">
<a href="#top"><img src="../../src/up.gif" width="14" height="10" border="0" alt="nach oben"></a>
</td></tr>
<tr>
<td bgcolor="#EEEEEE" class="doc" align="right" width="110">weiter:<img src="../../src/next.gif" width="10" height="10" border="0" hspace="10" alt="weiter"></td>
<td bgcolor="#FFFFFF"><img src="../../src/dok.gif" width="15" height="10" border="0" alt="Seite">
</td>
</tr>
<tr>
<td bgcolor="#EEEEEE" class="doc" align="right" width="110">zur&uuml;ck:<a href="index.php"><img src="../../src/prev.gif" width="10" height="10" border="0" hspace="10" alt="zur&uuml;ck"></a></td>
<td bgcolor="#FFFFFF" width="100%"><img src="../../src/dok.gif" width="15" height="10" border="0" alt="Seite">
<a href="index.html"><b>Verzeichnisse</b></a> </td>
</tr>
<tr><td colspan=2 bgcolor="#EEEEEE" class="doc">&#160;</td></tr>
</table><table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#FFEEDD" class="nav"><a class="an" name="bottom"><img src="../../src/refkap.gif" width="16" height="13" border="0" alt="Teil von"></a>
<a href="../../index.html"><b>SELFPHP</b></a>/<a href="../../navigation/index.html">Navigationshilfen</a>
<img src="../../src/refkap.gif" width="16" height="13" border="0" alt="Teil von">
<a href="../index.html"><b>Tipps &amp; Tricks</b></a> <img src="../../src/refkap.gif" width="16" height="13" border="0" alt="Teil von">
<a href="index.html"><b>Verzeichnisse</b></a></td>
</tr>
</table>
<p><a class="an" name="bottom">&copy; 2001, 2002, 2003</a> <img src="../../src/mail.gif" width="15" height="10" border="0" alt="E-Mail">&nbsp;<a href="mailto:mail@selfphp.info">Damir
Enseleit, mail@selfphp.info</a></p>
</body>
</html>