PHP Filebrowser

Status
Niet open voor verdere reacties.

thel3om324

Gebruiker
Lid geworden
20 jan 2011
Berichten
132
goeiemorgen,

Ik moet voor mijn schoolopdracht een filebrowser met PHP maken, is (een beetje) gelukt.
Hij read de files en mappen.
Nou werkt het niet lekker.
Als ik een .txt wil uitlezen lukt dat bijvoorbeeld niet.
Wil ik een php openen, doet die het ook niet.
Hij blijft dan op de huidige pagina staan.
hieronder zal ik mijn code posten voor mocht iemand mij kunnen helpen dan hoor ik het graag.
Code:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" type="text/css" href="style.css"  />
        <title></title>
    </head>
    <body>
        <?php
        if (isset($_GET['folder'])) {
            $dir = $_GET['folder'];
            $dir = realpath($dir) . '/';
        } else {
            $dir = getcwd();
        }

//echo print_r ($files);
          
        $files = scandir($dir);
        foreach ($files as $file) {
            // map vergeten...
            if (is_file($dir . "\\" . $file)) {
                echo 'bestand: <a href="index.php?folder=' . $dir . '&amp;F=' . $file . '">' . $file . '</a><br>';
            } elseif ($file == '.') {
                
            } elseif ($file == '..' && $dir == 'C:\xampp\htdocs\filebrowser') {
                echo $file;
            } else {
                echo 'Map: <a href="index.php?folder=' . $dir . '\\' . $file . '">' . $file . '</a><br>';
            }
        }
        //test
        
        ?>
    </body>
</html>
 
Laatst bewerkt door een moderator:
bekijk eens een werkende editie van

PHP:
<?php
 /**
 * @author Lieven Roegiers
 * @CMS autosite
 * opensource http://code.google.com/p/autosite/
 */
	class FileScanner{
		private $dirs =array();
		private $files =array();
		private $inc_ext =array();
		private $exc_ext =array();
		private $isnotinc_ext = true;//!!!not!!!
		public function scandir($dir){
			$this->dirs =array();
			$this->files =array();
			if ($d = Dir($dir)){
				while (false !== ($entry = $d->read())) {
                	$pos = strpos($entry, ".");
                	if ($pos === false){
            	       array_push($this->dirs,$entry);	
		            }elseif(substr($entry, 0, 1) != "."){
            		   $name = substr($entry, 0, $pos);
            		   $ext = substr($entry, -4);
            		   //$this->test2($ext);
		               if (!in_array($ext,$this->exc_ext)){
							if ($this->isnotinc_ext||in_array($ext,$this->exc_ext)){
								array_push($this->files,$entry);
		               		}
		               }
           	        }
                }
			}
			//$this->test();
		}
		private function is_incext(){
			return count($this->inc_ext,1)<1;
		}
		public function set_inc_extfilter($arrlist){
			$isnotinc_ext = false;//!!!not!!!
			$this->inc_ext=$arrlist;
		}
		public function set_exc_extfilter($arrlist){
			$this->exc_ext=$arrlist;
		}
		/**
    	* @param $array[inc]=array('.inc','.htm','.old'); 
    	* @param $array[exc]=array(".htaccess");
     	*/
     	public function setfilter($arr){
     		if (isset($arr['inc'])){
     			$this->inc_ext=$arr['inc'];
     		}
     		if (isset($arr['exc'])){
     			$this->inc_ext=$arr['exc'];
     		}
		}
		public function getdirs(){
			return $this->dirs;
		}
		public function getfils(){
			return $this->files;
		}
		private function test(){
			print "<br><br>print dirs<br>";
			print_r($this->dirs);
			print "<br><br>print files<br>";
			print_r($this->files);
		}
		private function test2($test){
			print property_exists($test ,$this->exc_ext);
			print($test);
			//print "<pre>";
			print_r($this->exc_ext);
			//print "</pre>";
		}
}
?>
 
Die werkt niet als ik die gebruik...
Of moet ik die in mijn huidige code stoppen?
 
Je moet de class en methods wel aanroepen.
 
Je moet de class en methods wel aanroepen.

volgende code heb ik, ik kan het in ieder geval nu uitlezen, nu nog bewerken, mocht je toevallig weten hoe dan hoor ik het graag
Code:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" type="text/css" href="style.css"  />
        <title></title>
    </head>
    <body>
        <div id="box1">
        <?php
        if (isset($_GET['folder'])) {
            $dir = $_GET['folder'];
            $dir = realpath($dir) . '/';
        } else {
            $dir = getcwd();
        }

//echo print_r ($files);
          
        $files = scandir($dir);
        foreach ($files as $file) {
            // map vergeten...
            if (is_file($dir . "\\" . $file)) {
                echo 'bestand: <a href="index.php?folder=' . $dir . '&amp;F=' . $file . '">' . $file . '</a><br>';
            } elseif ($file == '.') {
                
            } elseif ($file == '..' && $dir == 'C:\xampp\htdocs\filebrowser') {
                echo $file;
            } else {
                echo 'Map: <a href="index.php?folder=' . $dir . '\\' . $file . '">' . $file . '</a><br>';
            }
        }
        ?>
        </div>
        <div id="text"><h3>example:</h3></div>
        <div id="box2">
        <?php
        //test
        if(isset($_GET['F'])){
            $items = $_GET['F'];
            $read = file_get_contents($items);
            echo '<pre>'. htmlspecialchars($read) . '</pre>';
        }
        ?>
        </div>
    </body>
</html>
 
Het is toch een schoolopdracht?
Als je de Autosite study project code copy/paste dan heb je in ieder geval een onvoldoende want iedere docent ziet dat dit niet van jou komt.

Noot: ik zou dit denk ik vroeger ook gedaan hebben maar dat terzijde ;)
 
Waar is de Google mentaliteit van tegenwoordig toch gebleven?
Helemaal mee eens, en voor een schoolopdracht pak je de simpelste waarin alleen maar zit wat er in de opdracht wordt gevraagd.
 
Op google zie ik niks, dus dat is het probleem?
Scan je PC eens met anti-malware, want dan heb je een een hele vreemde Google. Ik zie namelijk op de eerste hit al wel iets!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan