23. november 2004 - 19:43
Der er
10 kommentarer
"Stifinder" i php
Hey. Jeg er igang med at lave et lidt mere dynamisk system på en side, hvor jeg godt kunne tænke mig at se filstrukturen i hjmmesidens mapper. Altså et system hvor jeg kan se mapper og filer, samt bladre rundt i mapperne. Har bikset lidt medfunktionen glob, men kan ikke lige se hvordan jeg kører undermapper ind, så jeg kan bladre noget bedre: function file_size_convert($filesize) { $sizetitles = array('B', 'KB', 'MB', 'GB', 'TB'); $tmpcount = 0; while($filesize >= 1024 && $tmpcount < count($sizetitles)) { $filesize /= 1024; $tmpcount++; } return sprintf('%0.2f', $filesize) . ' ' . $sizetitles[$tmpcount]; } $mappe = "language"; $filer = array(); if ($handle = opendir($mappe)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && !is_dir($file)) { $filer[]= $file; } } closedir($handle); } sort($filer); reset($filer); foreach ($filer AS $val) { $created = date("d-m-Y H:i:s", filemtime($mappe.$val)); $modified = date("d-m-Y H:i:s", filectime($mappe.$val)); $size = file_size_convert(filesize($mappe.$val)); $size = file_size_convert(filesize($mappe.$val)); echo "<tr><td></td><td><a href=\"".$mappe.$val."\">".$val."</a></td><td>".$size."</td><td>".$created."</td><td>".$modified."</td><tr>"; }
Annonceindlæg fra Kingston Technology
23. november 2004 - 19:56
#1
23. november 2004 - 20:00
#2
måske du kan bruge noget herfra: <? $bytes = 0; tree( "./", "jpg", 3, "|" ); $kb = $bytes / 1024; $mb = $kb / 1024; $gb = $mb / 1024; function getmimetype( $filename ) { static $mimes = array ( '\.jpg$|\.jpeg$' => 'image/jpeg', '\.gif$' => 'image/gif', '\.png$' => 'image/png', '\.html$|\.html$' => 'text/html', '\.txt$|\.asc$' => 'text/plain', '\.xml$|\.xsl$' => 'application/xml', '\.pdf$' => 'application/pdf' ); foreach( $mimes as $regex => $mime ) { if( eregi( $regex, $filename ) )return $mime; } // return 'application/octet-stream'; return 'text/plain'; } function tree( $path, $type, $indentno, $line = "", $indent = "" ) { global $bytes; for( $x = 1; $x <= $indentno; $x++ ) { $indent .= " "; } $d = dir( $path ); while( false !== ( $entry = $d->read()) ) { $etdir = is_dir( $path . $entry ); if( $entry != "." && $entry != ".." && $entry != "" ) { $path_parts = pathinfo( $entry ); if( $etdir || strstr( $type, $path_parts["extension"] ) || $type == "*" ) { $bytes += filesize( $path . $entry ); echo "$indent<a type='" . getmimetype( $path . $entry ). "' href='" . $path . $entry . "'>" . ( $etdir ? "<b>" : ""). $entry . ( $etdir ? "</b>" : ""). "</a><br />\n"; } if( $etdir ) { tree( $path . $entry . "/", $type, $indentno, $line, $indent . $line ); } } } $d->close(); } ?>
23. november 2004 - 20:05
#3
Den kommer med følgende fejl: Fatal error: Call to undefined function tree() in E:\web\cms\admin\_sider.php on line 8 Er tree() en indbygget php-funktion?!?
23. november 2004 - 20:08
#4
tree er en funktion i det jeg skrev, så den kan ikke være udefineret function tree( $path, $type, $indentno, $line = "", $indent = "" ) {
23. november 2004 - 20:09
#5
Ja okay... Det kan jeg da godt se... Var lige lidt for hurtig med at tyde fejlmeddelelsen
23. november 2004 - 20:14
#6
Kan dog ikke lige se hvorfor den melder fejlen.
23. november 2004 - 20:18
#7
jeg har lige gentestet den og den køre fint her, så hmmmmmm
23. november 2004 - 20:24
#8
Nu fik jeg det også til at virker, men den er jo ikke meget anderledes end min egen. Jeg mangler en funktion hvor jeg kan bladre i alle mapper. -> Gå frem og tilbage mellem mapperne.
23. november 2004 - 20:32
#9
ahhh - sorry jeg læste dit spg, forkert. ( det er jeg go til :-) )
23. november 2004 - 21:03
#10
rettet lidt, absolut ikke køn, men ideen er der ( vist ) <? if( $_GET['folder'] == "" ) $folder = "./"; else $folder = $_GET['folder']; chdir( $folder ); tree( "./", "*", 3 ); function tree( $path, $type, $indentno, $indent="" ) { for( $x=1;$x<=$indentno;$x++) { $indent.=" "; } $d = dir($path); while (false !== ($entry = $d->read())) { $etdir = is_dir($path.$entry); if( $entry != "." && $entry != "" ) { $path_parts = pathinfo($entry); if( strstr($type, $path_parts["extension"]) || $type=="*" ) { echo ($etdir?"<b>":"").$indent.$entry.($etdir?"</b>":"")."<br />\n"; } if( $etdir ) { $sti=$path.$entry."/"; echo "<a href=" . $_SERVER['PHP_SELF'] . "?folder=$sti>$sti</a><br />"; } } } $d->close(); } ?>
Vi tilbyder markedets bedste kurser inden for webudvikling