ZoRaC Skrevet 10. juli 2003 Del Skrevet 10. juli 2003 Hei! Ta en titt på dette scriptet: <html> <head> <style> A:link { text-decoration: none; color : #000E10; } A:visited { text-decoration: none; color : #000E10;} A:hover { text-decoration: none; color : #1E3346;} </style> <title>Filkonvertering</title> </head> <?php $web_dir_to = "http://web-adresse.com/doc2html/html/5.1%20Administrasjon%20og%20administrative%20stotteprosesser%20og%20tjenester/"; $from_directory = "D:htmlDoc2HTMLDoc5.1 Administrasjon og administrative stotteprosesser og tjenester"; $to_directory = "D:htmlDoc2HTMLHtml5.1 Administrasjon og administrative stotteprosesser og tjenester"; //Test for å se om det er mappe! if (!is_dir($from_directory)) { echo "Ugyldig mappe:<br>$from_directory!"; exit(); } if (!is_dir($to_directory)) { echo "Ugyldig mappe:<br>$to_directory!"; exit(); } // Åpne mappen if ($handle = opendir($from_directory)) { echo "<b><font size=2 face=verdana>Liste over konverterte filer:</b><br><br>"; // Hent ut filene while (false !== ($file = readdir($handle))) { // Tar ikke med "." og ".." if ($file != "." && $file != "..") { // Sjekker filtype $file_ext = strtolower (strrchr ($file, '.')); // Hvis filtypen er .doc if ($file_ext==".doc") { // Sjekker at det ikke er en word-temp-fil if (substr($file, 0, 1)!="~") { // Navnet på .htm-filen $html_file = str_replace(".doc", ".htm", $file); // Full bane til word-filen $full_from_path=$from_directory . "" . $file; // Full bane til html-filen $full_to_path=$to_directory . "" . $html_file; // Full web-bane til filen $full_web_to_path_html=$web_dir_to . "/" . $html_file; $full_web_to_path_doc=$web_dir_to . "/" . $file; $full_web_to_path_doc=str_replace("/html/", "/doc/", $full_web_to_path_doc); // Lager linker echo "<a href="" . $full_web_to_path_html . "">" . (str_replace(".doc", '', $html_file)) . "</a><br>"; // Utfører kovnvertering include 'convertor.php'; // Sett inn "Utskrifts-vennlig versjon" include 'print-version.php'; } } } } } // Lukker mappen closedir($handle); ?> Problemet er at jeg vil at den skal gjøre det samme på alle mappene som ligger under $from_directory. Hvordan kan jeg lage et script som finner alle sub-dirs og kjører scriptet på de mappene også (og sub-dirs i sub-dirs, osv helt til det ikke er flere mapper) En ting til: Har problemer med at den tar kun filer med .doc-extension, ikke .DOC, .Doc, osv... Noen forslag? Takk på forhånd! Lenke til kommentar
Bluebeans Skrevet 10. juli 2003 Del Skrevet 10. juli 2003 aner ikke engang hva det der er en gang jeg. Lenke til kommentar
ZoRaC Skrevet 10. juli 2003 Forfatter Del Skrevet 10. juli 2003 Du må bruke rekursjon. Kan du forklare det nærmere? Event. komme med ett eksempel? Skjønner ikke helt hvordan jeg skal gjøre det... spesielt iom at jeg har undermapper i undermapper, osv... Takk for kjapt svar! Lenke til kommentar
ZoRaC Skrevet 10. juli 2003 Forfatter Del Skrevet 10. juli 2003 Fant det selv.. Ett søk på Google fixet biffen! Takk for hjelpen! Lenke til kommentar
b-urn Skrevet 10. juli 2003 Del Skrevet 10. juli 2003 hmmm... Snekret sammet et forslag, men åpenbart litt for sent :-? Nuh vel.. poster det likevel jeg, kan jo tenkes at andre har/får bruk for det en eller annen gang: <?php fncRecursiveDir("."); function fncRecursiveDir($str_Dirs,$strTab='') { if (!is_array($str_Dirs)) $str_Dirs = Array("$str_Dirs"); foreach($str_Dirs as $strDir) { echo("$strTab [Dir: $strDir]<br>"); $str_Array = Array(); $lngCount = 0; $dh = opendir($strDir); while( false !== ($file = readdir($dh)) ) { if(filetype("$strDir/$file")=="dir") { if( ($file != ".") && ($file != "..")) { $str_Array[$lngCount++]="$strDir/$file";} } else { //Her kommer kode som gjør et eller annet med filnavn echo("$strTab - $file<br>"); } } echo("<br>"); closedir($dh); //Kalle funksjon rekursivt for alle underdir fncRecursiveDir($str_Array,"$strTab &"); } } ?> Lenke til kommentar
ZoRaC Skrevet 10. juli 2003 Forfatter Del Skrevet 10. juli 2003 Takk likevel b-urn.. Ett søk på Google ga meg denne koden: <?php function RecurseDir($basedir, $AllDirectories=array()) { #Create array for current directories contents $ThisDir=array(); #switch to the directory we wish to scan chdir($basedir); $current=getcwd(); #open current directory for reading $handle=opendir("."); while ($file = readdir($handle)) { #Don't add special directories '..' or '.' to the list if (($file!='..') & ($file!='.')) { if (is_dir($file)) { #build an array of contents for this directory array_push($ThisDir,$current.'/'.$file); } } } closedir($handle); #Loop through each directory, run RecurseDir function on each one foreach ($ThisDir as $key=>$var) { array_push($AllDirectories, $var); $AllDirectories=RecurseDir($var, $AllDirectories); } #make sure we go back to our origin chdir($basedir); return $AllDirectories; } ?> /* example */ <? $dirlist=RecurseDir("/home/ben"); foreach ($dirlist as $key=>$val) { echo $val; } ?> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå