|
| Autor |
Nachricht |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 01.03.2007, 15:58 Titel: Dateien dynamisch aus Ordner laden |
|
|
HY
Ich versuche grade meinen Downloadbereich einzurichten. Dafür will ich alle Daten aus einem Ordner "Download" laden lassen.
Die Dateipfade sollen dann automatisch in eine xml-Datei gespeichert werden.
Mit der xml-datei will ich dann eine Liste mit den Verknüpfungen zu den Dateien erstellen.
Leider hab ich keinen Plan wie ich das realisieren soll.
Kann mir da jemand helfen?
Oder habt ihr Vorschläge wie ich ein dynamisches Downloadarchiv sonst realisieren soll?
Schonmal ein Danke im Vorraus.
Bis dann
|
|
| Nach oben |
|
 |
chris1988 Bekannter [User]

Anmeldung: 12.12.05 Beiträge: 1644
|
Verfasst am: 01.03.2007, 16:46 Titel: |
|
|
guck dir mal die PHP-Funktion opendir bzw. readdir an, damit solltest du weiterkommen  _________________ Mancher ertrinkt lieber,
als daß er um Hilfe ruft.
(Wilhelm Busch)
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1409 Wohnort: Speyer
|
Verfasst am: 01.03.2007, 16:49 Titel: Re: Dateien dynamisch aus Ordner laden |
|
|
| method360 hat folgendes geschrieben: | will ich alle Daten aus einem Ordner "Download" laden lassen.
Die Dateipfade sollen dann .... gespeichert werden. |
Wozu willst du die Dateipfade verarbeiten .... wenn es immer der selbe Pfad ist?
Verzeichniss auslesen
| Code: |
$dir ='download/';
$dhandle=opendir($dir);
while(($file = readdir($dhandle)) !== false)
{ if ( filetype($dir.$file) == 'file' ) echo( '<br>'. $file );
} closedir($dhandle);
|
_________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär
|
|
| Nach oben |
|
 |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 01.03.2007, 17:53 Titel: |
|
|
OK ... danke schonma
| Code: | | Wozu willst du die Dateipfade verarbeiten .... wenn es immer der selbe Pfad ist? |
naja , ich brauch doch die verknüpfungen... damit ich die Dateien dann runterladen kann, oder nicht.
Da ich davon nich soviel Ahnung habe wie ich es gern hätte.Denke ich mir , dass das ein komfortabler weg ist .... eine dynamischen liste zu erstellen.
Naja , aber wie gesagt habe ich davon nich viel Ahnung.... für bessere Wege habe ich stets ein offenes Ohr
Ok ... der Ordner is jetzt ausgelesen ... wie verarbeite ich die Daten jetzt weiter? Brauch ja irgendwie Verknüpfungen zu den Daten , damit sie dann heruntergeladen werden können.
Bis dann
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1409 Wohnort: Speyer
|
Verfasst am: 01.03.2007, 18:21 Titel: |
|
|
| method360 hat folgendes geschrieben: | Ok ... der Ordner is jetzt ausgelesen ... wie verarbeite ich die Daten jetzt weiter? Brauch ja irgendwie Verknüpfungen zu den Daten , damit sie dann heruntergeladen werden können.
Bis dann |
| Code: |
$dir ='download/';
$dhandle=opendir($dir);
while(($file = readdir($dhandle)) !== false)
{ if ( filetype($dir.$file) == 'file' )
echo( '<br><a href="http://domain.tld/'.$dir.$file.'">'.$file.'</a>' );
} closedir($dhandle);
|
Was willst du eigentlich genau?
Warum Ordner auslesen in Datei speichern ... welche später wieder ausgelesen werden müßte ...
Wenn du wissen wilst ob sich dein Kontostand geändert hat ....
gehst du ja nicht zu Bank und druckst einen Kontoauszug aus (schaust nicht rein) .. gehst heim, Heftest Auszug ab, stellst Ordner in Regal ....
... nimmst Ordner wieder aus Regal, öffnest und schaust nach
Mann schaut nach dem drucken, vor dem abheften
Du willst erst abheften .....
| Code: |
$dir ='download/';
$dhandle=opendir($dir);
$handle=fpen('abheften.txt','wb');
while(($file = readdir($dhandle)) !== false)
{ if ( filetype($dir.$file) == 'file' )
fwrite($handle,$file."\n");
} closedir($dhandle); fclose($handle);
|
Nachschauen
| Code: |
$buffer = file_get_contents( 'abheften.txt' );
$zeilen = explode( "\n" , $buffer );
$zcount = count( $zeilen );
$i=-1;
while ( ++$i < $zcount )
{
echo( '<br><a href="http://domain.tld/download/'.$zeilen[$i].'">'.$zeilen[$i].'</a>' );
}
|
_________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär
|
|
| Nach oben |
|
 |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 01.03.2007, 18:31 Titel: |
|
|
Danke für die Idiotensicher Antwort... werd das heute nacht ma ausprobieren , wenn ich dann noch fragen habe schreib ich nochmal.
Bis dann
|
|
| Nach oben |
|
 |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 01.03.2007, 18:56 Titel: |
|
|
Also , habs doch gleich ausprobiert und bekomme folgender Fehlermeldungen ... weiss nich wie ich das beheben soll . Ist das Serverseitig oder stimmt was mit dem script nich ?
fopen("abheften.txt", "wb") - Permission denied in /home/www/web25/html/download.inc.php on line 5<br />
<br />
Warning: fwrite(): supplied argument is not a valid File-Handle resource in /home/www/web25/html/download.inc.php on line 8<br />
<br />
Warning: fwrite(): supplied argument is not a valid File-Handle resource in /home/www/web25/html/download.inc.php on line 8<br />
<br />
Warning: fclose(): supplied argument is not a valid File-Handle resource in /home/www/web25/html/download.inc.php on line 9<br />
<br />
Fatal error: Call to undefined function: file_get_contents() in /home/www/web25/html/download.inc.php on line 12<br />
OK ... hoffe das wir das irgendwie hinkriegen
Bis dann
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1409 Wohnort: Speyer
|
Verfasst am: 01.03.2007, 19:13 Titel: |
|
|
| method360 hat folgendes geschrieben: | | fopen("abheften.txt", "wb") - Permission denied in |
Permission denied
= Erlaubnis verweigerte
Du darfst die datei nich anlegen ... also kann sie später auch nicht beschreiben und gelesen werden = Folgefehler
mit FTPprogramm dem Ordner wo die Datei ist (sein soll) mehr Rechte geben
wenn nicht möglich (ich kann meinem rootOrdner nicht mehr Rechte geben)
Ordner anlegen, diesem mehr Rechte geben und dortrein die Datei schreiben
fopen("meinneuerOrdnermitmehrrechten/abheften.txt", "wb"); _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär
|
|
| Nach oben |
|
 |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 02.03.2007, 00:32 Titel: |
|
|
bekomme jetzt noch folgende fehlermeldung....
Fatal error: Call to undefined function: file_get_contents() in /home/www/web25/html/download.inc.php on line 19
weiss aber nich was ich noch machen soll.mein code sieht jetzt folgendermaßen aus
| Code: | <?php
//Ordner auslesen und in Datei abheften.txt speichern
$dir ='download/';
$dhandle=opendir($dir);
$handle=fopen('abheften/abheften.txt','wb');
while(($file = readdir($dhandle)) !== false)
{ if ( filetype($dir.$file) == 'file' )
fwrite($handle,$file."\n");
} closedir($dhandle); fclose($handle);
//inhalt von abheften.txt auslesen und links erstellen
$buffer = file_get_contents( 'abheften/abheften.txt' ); <-- Zeile 19
$zeilen = explode( "\n" , $buffer );
$zcount = count( $zeilen );
$i=-1;
while ( ++$i < $zcount )
{
echo( '<br><a href="http://domain.tld/download/'.$zeilen[$i].'">'.$zeilen[$i].'</a>' );
} |
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1409 Wohnort: Speyer
|
Verfasst am: 02.03.2007, 01:44 Titel: |
|
|
Die funktion geibt es aber
http://de.php.net/manual/de/function.file-get-contents.php
Alternative
| Code: |
$handle= fopen( 'abheften/abheften.txt' , 'rb' );
$buffer = fread( $handle, 999999 );
fclose( $handle );
|
999999 siehe http://de.php.net/manual/de/function.fread.php
zu groß darf die Zahl nicht sein, weil sie sonst überläuft und wieder kleiner ist
jetzt ist die Frage wieviel Bit der int hat
32bit = 2^32 = 4.294.967.296
würde man 9.000.000.000 reinschreiben ....
... wäre nur 410.065.408 drin
aber das führt jetzt zu weit ...
... deine Datei wird ja wohl kleiner 1Mega sein
notfals wäre ja platz bis 900 Mega bzw 2 Giga (weil die 4Giga sind unsignet=ohne Vorzeichen)
alles klar?
bei mir nicht ... weils den get_contents bei dir nicht gibt
Oft ist ein fehler garnicht in der Zeile wo er gemeldet wird .... sondern dafor ...
.... nur hat der Parser dort noch keinen Grund einen Fehler zu melden ... weil der Code zwar falsch, aber für den parser akzeptabel ist ....
Beilspiel
| Code: |
echo ( "Hallo );
$buffer = fread( $handle, 800 );
echo ( "Output". $buffer );
|
im ersten echo fehlt das 2te Anführungszeichen
der Echo will
| Code: |
"Hallo );
$buffer = fread( $handle, 800 );
echo ( "
|
ausgeben
und dann kommt "Output" und diesen Befehl kennt PHP nicht ...
... ERROR unbekannter Befehl in zeile 17
fehler ist aber in Zeile 15 das fehlende " _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär
|
|
| Nach oben |
|
 |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 02.03.2007, 02:26 Titel: |
|
|
Hy ... schonma Danke für deine schnelle Antwort ....
Könnte es sein , dass auf dem webserver eine alte PHP Version installiert ist?
Hab in nem anderen Forum gelesen , dass dieser fehler auftritt wenn die PHP Version zu alt ist.
http://webdesign.weisshart.de/blog.php?p=28
hier nach Call to undefined function: file_get_contents() suchen .
bis dann
EDIT: Also die Alternative funktioniert.Dafür schonmal ein fettes DANKE.
Aber trotzdem würde mich interessieren , warum die andere Methode nich geht.
Ach ja und nochwas .... wie kann ich dann auf den generierten link mit css einwirken? hab das grad probiert , aber dass stylesheet wirkt sicher immer gleich auf alle Links gleichzeitig aus. Ich will aber auf jede Linkadresse einzeln einwirken.
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1409 Wohnort: Speyer
|
Verfasst am: 02.03.2007, 03:27 Titel: |
|
|
| method360 hat folgendes geschrieben: | Hy ... schonma Danke für deine schnelle Antwort ....
Könnte es sein , dass auf dem webserver eine alte PHP Version installiert ist?
Hab in nem anderen Forum gelesen , dass dieser fehler auftritt wenn die PHP Version zu alt ist.
http://webdesign.weisshart.de/blog.php?p=28
hier nach Call to undefined function: file_get_contents() suchen .
bis dann
EDIT: Also die Alternative funktioniert.Dafür schonmal ein fettes DANKE.
Aber trotzdem würde mich interessieren , warum die andere Methode nich geht. |
jo, liegt am alter ....
.... mein localhost PHP ist wohl knapp drüber
Vor Tagen hab ich den Befehl mal zum schreiben benutzt
file_put_contents()
aufm Webhoster gings ....
... dann bei mir auf localhost (Wohnzimmer PC http://800xe.homeip.net/ ) und dort gings nicht .... die Put Version geht erst ab PHP 5 _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär
|
|
| Nach oben |
|
 |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 02.03.2007, 04:45 Titel: |
|
|
Ach ja und nochwas .... wie kann ich dann auf den generierten link mit css einwirken? hab das grad probiert , aber dass stylesheet wirkt sicher immer gleich auf alle Links gleichzeitig aus. Ich will aber auf jede Linkadresse einzeln einwirken.
ciao
|
|
| Nach oben |
|
 |
method360 Stammuser [User]

Anmeldung: 14.12.06 Beiträge: 29
|
Verfasst am: 02.03.2007, 17:11 Titel: |
|
|
| Code: | | echo('<br><a class="class1" href="http://domain.tld/download/'.$zeilen[$i].'">'.$zeilen[$i].'</a> |
Ich denke , ich kann das Problem mit der Gestaltung nur lösen ,wenn ich classe dynamisch bestimme ... also pro Link soll die class um 1 hochgezählt werden (class1,class2 ... usw.).
Leider fehlt mir dazu das Know-How ,bzw. weiss ich nich ob das überhaupt geht .
Hab bis jetzt versucht , die Variable $i dazu zu verwenden , das hat aber leider nich geklappt. mein codeblock sah dann so aus :
| Code: |
echo('<br><a class="class'$i'" href="http://domain.tld/download/'.$zeilen[$i].'">'.$zeilen[$i].'</a>
|
Hoffe , dass irgendwer dies Problem für mich lösen kann.
Ciao
|
|
| Nach oben |
|
 |
chris1988 Bekannter [User]

Anmeldung: 12.12.05 Beiträge: 1644
|
Verfasst am: 02.03.2007, 19:07 Titel: |
|
|
Punkte vergessen!
es muss heißen class="class' . $i . '" _________________ Mancher ertrinkt lieber,
als daß er um Hilfe ruft.
(Wilhelm Busch)
|
|
| Nach oben |
|
 |
|
|