ilpostino Skrevet 16. januar 2011 Del Skrevet 16. januar 2011 (endret) Jeg har børstet støv av en kode som lister opp alle mapper og filene i disse og muliggjør redigering av disse filene. Det er jeg er på jakt etter å gjøre er å gjøre slik at kun mappenavnene vises og når en trykker på disse (eller holder musepekeren over navnet) vil filene i mappen vises. Jeg har sittet i hele kveld uten å finne ut hva jeg gjør feil. er det noen ser hva som må endres? <?php /* * This script performs a recursive search in folders of your choic and list the content. All files are * links and by clicking a filename you may edit the file in a file editor. */ $filename =$_GET['filename']; //fetch the filename $newdata = $_POST['newd']; //fetch txt in the txtarea $folder_name ="."; //name of the folder containing the files //This saves the edited text into the file function save_to_file () { global $filename, $newdata, $folder_name; if (!$newdata != '') die ("Textfield is empty"); if (!file_exists($filename)) die ("File ". $filename ." is not found"); $fw = file_get_contents($filename) or die('Could not open file ' . $filename . '!');; $fb = file_put_contents($filename, $newdata) or die('Could not write to file ' . $filename . '!');; //$fw = fopen($filename, 'w+') or die('Could not open file ' . $filename . '!'); //$fb = fwrite($fw,stripslashes($newdata)) or die('Could not write to file'); fclose($fw); echo "Informasjonen er lagret i filen. Trykk <a href='$_SERVER[php_self]?action=display&&filename=". $filename ."'>her</a> for å vise inholdet i filen."; } //This displays the content of the files in a txtarea in which you may edit your file. function display_content () { global $filename; recursive_tree (); $fh = fopen($filename, "r"); if (!$fh) { error_message ("Could not open file."); } $data = file_get_contents($filename); if (!$data) { error_message ("Could not read file."); } fclose($fh); echo "</div><div><br>Her vises filen <b>$filename </b><br><form action='$_SERVER[php_self]?action=save&&filename=". $filename . "' method='post'>"; echo "<textarea name='newd' cols='100%' rows='30'> $data </textarea><br><input type='submit' value='Save file'></form></div>"; } //This displays the default content. function default_page () { global $filename, $folder_name; recursive_tree (); echo "</div><h3>Choose file</h3><form action='$_SERVER[php_self]?action=save' method='post'>"; echo "<textarea name='newd' cols='100%' rows='30'> </textarea><br><input type='submit' value='Change'></form>"; } //This function display the folder structure recursivly function recursive_tree () { echo ("<div class='vanlig'><div style='width:300px;float:left;height:700px'>"); // This function performs a recursive dive into the file structure function getDirectory($path = '.', $ignore = '') { $dirTree = array (); $dirTreeTemp = array (); $ignore[] = '.'; $ignore[] = '..'; $dh = @opendir($path); while (false !== ($file = readdir($dh))) { if (!in_array($file, $ignore)) { if (!is_dir("$path/$file")) { $dirTree["$path"][] = $file; } else { $dirTreeTemp = getDirectory("$path/$file", $ignore); if (is_array($dirTreeTemp)) $dirTree = array_merge($dirTree, $dirTreeTemp); } } } closedir($dh); ksort ($dirTree); return $dirTree; } //Here you decide which folders you want to exclude in the search $ignore = array('.htaccess', 'error_log', 'cgi-bin', 'php.ini', 'includes', 'images', 'test', 'downloads', 'ex', 'pentax'); $dirTree = getDirectory('../', $ignore); // Here you set the root of the filetree you would like to display //This loop displays the filestructure and displays the result. All filenames are links and by clicking their name you may edit the file. foreach ($dirTree as $value=>$mappenavn) { $value = str_replace ('//', '/', $value); echo "<SPAN onMouseover=\"definitionID.style.display=''\" onMouseOut=\"definitionID.style.display='none'\"><br>" . $value . "<br></SPAN>"; foreach ($mappenavn as $filnavn) { echo "<div ID=\"definitionID\" STYLE=\"display:none\"><a href='$_SERVER[php_self]?action=display&&filename=" . $value . "/" . $filnavn . "'>" . $filnavn . "</a><br></div>"; echo "<div><a href='$_SERVER[php_self]?action=display&&filename=" . $value . "/" . $filnavn . "'>" . $filnavn . "</a><br></div>"; } } } function error_message ($error) { echo ("</div><div>" . $error . "</div>"); exit; } //This Case Select switch ($_GET['action']) { case "display"; display_content(); break; case "save"; save_to_file(); break; default; default_page(); break; } ?> Endret 16. januar 2011 av ilpostino Lenke til kommentar
Martin A. Skrevet 17. januar 2011 Del Skrevet 17. januar 2011 <?php /* * This script performs a recursive search in folders of your choic and list the content. All files are * links and by clicking a filename you may edit the file in a file editor. */ $filename = ! empty( $_GET['filename'] ) ? $_GET['filename'] : ''; //fetch the filename $newdata = ! empty( $_POST['newd'] ) ? $_POST['newd'] : ''; //fetch txt in the txtarea $folder_name = "."; //name of the folder containing the files //This saves the edited text into the file function save_to_file () { global $filename, $newdata, $folder_name; if ($newdata == '') die ("Textfield is empty"); if (!file_exists($filename)) die ("File ". $filename ." is not found"); $fw = file_get_contents($filename) or die('Could not open file ' . $filename . '!');; $fb = file_put_contents($filename, $newdata) or die('Could not write to file ' . $filename . '!');; //$fw = fopen($filename, 'w+') or die('Could not open file ' . $filename . '!'); //$fb = fwrite($fw,stripslashes($newdata)) or die('Could not write to file'); fclose($fw); echo "Informasjonen er lagret i filen. Trykk <a href='?action=display&filename=". $filename ."'>her</a> for å vise inholdet i filen." . PHP_EOL; } //This displays the content of the files in a txtarea in which you may edit your file. function display_content () { global $filename; recursive_tree (); $fh = fopen($filename, "r"); if (!$fh) { error_message ("Could not open file."); } $data = file_get_contents($filename); if (!$data) { error_message ("Could not read file."); } fclose($fh); echo "</div><div><br>Her vises filen <b>$filename </b><br><form action='?action=save&filename=". $filename . "' method='post'>" . PHP_EOL; echo "<textarea name='newd' cols='100%' rows='30'> $data </textarea><br><input type='submit' value='Save file'></form></div>" . PHP_EOL; } //This displays the default content. function default_page () { global $filename, $folder_name; recursive_tree (); echo "</div><h3>Choose file</h3><form action='?action=save' method='post'>"; echo "<textarea name='newd' cols='100%' rows='30'> </textarea><br><input type='submit' value='Change'></form>"; } //This function display the folder structure recursivly function recursive_tree () { echo "<script type='text/javascript'> function toggle( div ){ var div1 = document.getElementById( div ) if (div1.style.display == 'none') { div1.style.display = 'block' } else { div1.style.display = 'none' } } </script><div class='vanlig'><div style='width:300px;float:left;height:700px'>" . PHP_EOL; // This function performs a recursive dive into the file structure function getDirectory($path = '.', $ignore = array() ) { $dirTree = array (); $dirTreeTemp = array (); $ignore[] = '.'; $ignore[] = '..'; $dh = @opendir($path); if( $dh !== FALSE ) { while (false !== ($file = readdir($dh))) { if (!in_array($file, $ignore)) { if (!is_dir("$path/$file")) { $dirTree[$path][] = $file; } else { $dirTreeTemp = getDirectory("$path/$file", $ignore); if (is_array($dirTreeTemp)) $dirTree = array_merge($dirTree, $dirTreeTemp); } } } closedir($dh); ksort ($dirTree); return $dirTree; } } //Here you decide which folders you want to exclude in the search $ignore = array('.htaccess', 'error_log', 'cgi-bin', 'php.ini', 'includes', 'images', 'test', 'downloads', 'ex', 'pentax'); $dirTree = getDirectory('./', $ignore); // Here you set the root of the filetree you would like to display //This loop displays the filestructure and displays the result. All filenames are links and by clicking their name you may edit the file. $i = 1; /*echo "<pre>"; print_r( $dirTree );*/ foreach ($dirTree as $value=>$mappenavn) { $value = str_replace ('//', '/', $value); echo "<span onClick=\"toggle('definitionID_{$i}'); return false;\">" . $value . "<br></span>" . PHP_EOL; echo "<div id='definitionID_{$i}' style='display:none'>" . PHP_EOL; foreach ($mappenavn as $filnavn) { echo "\t<a href='?action=display&filename=" . $value . "/" . $filnavn . "'>" . $filnavn . "</a><br>" . PHP_EOL; } echo "</div><br />" . PHP_EOL; $i++; } } function error_message ($error) { echo ("</div><div>" . $error . "</div>"); exit; } //This Case Select switch ($_GET['action']) { case "display"; display_content(); break; case "save"; save_to_file(); break; default; default_page(); break; } 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å