Und hoch mal ich mit FOPEN

ITBaer

Mitglied
ich muss ein Ordner nach Dateien untersuchen. Und wenn es was drinn ist soll es True ausgeben.
Mein problemm ist ,dass der Ordner nicht in Ordner ligt wo Script ligt, sonder in einem anderen.
Ich wollte es so machen, aber es funktionirt nicht :-(

PHP:
$ordner="../../Gallery/Ordner"; 
$fp = fopen($ordner, "r");
und gleich in Zeile $ft.... bringt er mir schon Fehler meldung L was kann ich machen?
 
ITBaer hat gesagt.:
(...)was kann ich machen?
Jörg Rißmann hat gesagt.:
Du solltest nochmal ein bisserl in den Grundlagen schnüffeln! (Quelle )

Zum Problem:
PHP:
<?php
    // Ordner einlesen, ohne "." und ".."
    $d = dir('../../Gallery/Ordner');
    while ($entry = $d->read()) {
        if ($entry == "." or $entry == "..")
            continue;
        $content[] = $entry;
    }
    $d->close();

    // Inhalte zaehlen
    $content_cnt = count($content);
?>
Jetzt hast du in der Variable $content_cnt die Anzahl der Ordner/Dateien.
Wenn die Variable 0 oder false ist, dann gibts keinen Inhalt.
 
ich habe so gemacht:

PHP:
<?
    // Ordner einlesen, ohne "." und ".." 
    $bild=0;
	$d = dir('../Gallery/06082005'); 
    while ($entry = $d->read()) 
		{ 
        if(!is_file($d."/$datei"))
		continue;
        $content[] = $entry; 
    	} 
    $d->close(); 

    // Inhalte zaehlen 
    $bilder = count($content); 

	echo'$id= '.$id.'<br> $bild= '.$bild;
	if($bild > 0)
		{mysql_query("Update veranstaltung set Freigabe='1' where ID like '$id'");}else {$fehler=1;}?>

und es kommt diese Fehler meldung zurück.
Code:
Warning: dir(../Gallery/06082005) [function.dir]: failed to open dir: Invalid argument in C:\apachefriends\xampp\htdocs\Village\AM-CMS\includes\events.inc on line 19

Fatal error: Call to a member function read() on a non-object in C:\apachefriends\xampp\htdocs\Village\AM-CMS\includes\events.inc on line 20

was mache ich falsch?

line 19 >> $d = dir('../Gallery/06082005');
 
Wenn Du ein Verzeichnis auslesen willst koenntest Du einen Blick auf meine eigens dafuer gebastelte Klasse werfen.
Die Anzahl der Dateien im Verzeichnis laesst sich damit auch ziemlich einfach feststellen, da alle Dateinamen in einem Array landen.
Da kannst Du dann mittels count() einfach die Anzahl der Dateien bekommen.
 
danke für deine Antword aber es ist voll kompleziert und ich will wiessen wieso geht es bei mir nicht. Da muss doch ihrgend wo ein "Wurm" sein :confused:
 
kommt diese fehlermeldung:

Fatal error: Class 'dir' not found in C:\apachefriends\xampp\htdocs\Village\AM-CMS\includes\events.inc on line 14
 
ITBaer hat gesagt.:
PHP:
<?
$d = dir('../Gallery/06082005'); 
    while ($entry = $d->read()) 
		{ 
        if(!is_file($d."/$datei"))
		continue;
        $content[] = $entry; 
    	} 
    $d->close();

Code:
Warning: dir(../Gallery/06082005) [function.dir]: failed to open dir: Invalid argument in C:\apachefriends\xampp\htdocs\Village\AM-CMS\includes\events.inc on line 19

Fatal error: Call to a member function read() on a non-object in C:\apachefriends\xampp\htdocs\Village\AM-CMS\includes\events.inc on line 20

Also ich hab das grad mal probiert und diese Fehlermeldung ist mir nicht ungekommen.
Aber mir ist was anderes aufgefallen:
Was ist $datei? Sollte das nicht eher $entry heissen?
Ausserdem kannst Du nicht $d."/$datei" nutzen, da $d ein Objekt ist.
Du musst $d->path."/$datei" nutzen.
Siehe php.net.

Dann hab ich noch fix zum testen, dass hier gebastelt:
PHP:
<?php
$d=dir("/var/www/htdocs/test");
while ($file=$d->read())
	{
		echo $file."\n";
	}
$d->close();
?>
Und es funktioniert wunderbar.
 
Zurück