Zip und iCal erstellen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ahnung
anbieten
archiv
code
datei
editor
erstellen
fehler
file
funktion
http
importieren
inhalt
klappen
maximum
nachsehen
problem
server
stecken
string
-
Hi Leute,
ich bastele gerade an meiner Webseite weiter und hab mich da gleich mit mehreren Features in einer Sackgasse verrannt.
1) Ich wollte auf meiner Seite für einige Events eine iCal datei anbieten,
da ich sowas nicht slebr Progren kann hab ich mir da auch was geholt:
http://downloads.sourceforge.net/php-flp/icalendar_2000.zip?modtime=1057536000&big_mirror=0
nach bissal rumspuielen hat es auch soweitgeklappt dass es was ausspuckt.
In Thunderbid/Sunbird kann ich das auch importieren, nur Outlook2007 von nem Freund Bockt rum.
Kann mir da vl wer sagen woran das liegt, oder eine andere Klasse empfehlen die er schon erfolgreich mit Thunderbird, Sunbird und Outlook
eingesetzt hat? sollte hald auch möglichst einfach sein ....
2)Außerdem wollte ich auch am Server Zips erstellen und auspacken.
Hab mich im php Manual eingelesen udn was erstelt. Mit einzelnen Dateien Scheint es auch zu klappen,
aber wenn ich mehr als eine ins Archiv stecken will, dann klappts ned:
Er gibt keinen Fehler aus und es wird auch das Archiv erstellt,
wenn ich dieses dann enpack befindet sich aber nur eine Datei drinnen ist dann so großs wie beide
Dateien kann auch geöffnet werden, nur enthält sie eben nur das erste Dokument ...
(so verhält es sich mit PDFs ich nehm an bei anderen Files passiert vl was schlimmeres)
$filename = \"pddd0.pdf.gz\"; $fname1 = \"pddd1.pdf\"; $fname2 = \"pddd2.pdf\"; // get content of file1 $fh = fopen($fname1, \'r\') or die(\"Can\'t open file\"); $fcontent = fread ($fh, filesize ($fname1)); // open file for writing with maximum compression $zp = gzopen($filename, \"w9\"); // write string to file gzwrite($zp, $fcontent); //close archive gzclose($zp); $filename = \"pddds.pdf.gz\"; $fname1 = \"pddd1.pdf\"; $fname2 = \"pddd2.pdf\"; // get content of file1 $fh = fopen($fname1, \'r\') or die(\"Can\'t open file\"); $fcontent1 = fread ($fh, filesize ($fname1)); fclose($fh); // get content of file2 $fh = fopen($fname2, \'r\') or die(\"Can\'t open file\"); $fcontent2 = fread ($fh, filesize ($fname2)); fclose($fh); // open file for writing with maximum compression $zp = gzopen($filename, \"w9\"); // write string to file gzwrite($zp, $fcontent1); gzwrite($zp, $fcontent1); //close archive gzclose($zp);
Sieht wer nen Fehler bzw weiß wies geht ? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Recht offensichtlich ist, dass du zweimal $fcontent1 in die zip-Datei schreibst (Zeile 35/36). Der Inhalt der zweiten Datei steht aber in $fcontent2, also solltest du das auch schreiben:
<? // write string to file gzwrite($zp, $fcontent1); gzwrite($zp, $fcontent2); ?>
-
So offensichtlich dass du es selber ausprobiert hast ?
Ist doch offensichtlich, dass ich 2 mal die Selbe Datei ins Archiv gesteckt habe,
also müsste sie auch 2 mal rauskommen oder ?
Aber auch mit 2 verschieden klappt es nicht!
no way ....
-
Also ausprobiert hab ich nichts und ich hatte mich bisher auch nicht weiter mit den GZ-Funktionen befasst.
Allerdings ist GZ eher dafür da eine Datei zu kompremieren und nicht um mehrere Datein in einem Archiv zusammen zu fügen. Ich denke, da liegt das Problem, denn wenn du die gz-Datei offnest mit gzopen() und dann mit gzwrite() schreibst, dann schreibst du ja nicht die Datei, die du vorher eingelesen hast, sondern nur den Inhalt der Datei als String. Wenn du nun keine PDFs verwendest, sondern mal ganz normale Textdateien, wirst du sehen, was gzwrite() macht: Es hängt den Inhalt der einen Datei an die andere an, wie ich einfach mal getestet hab ;)
Hier mal der code, auch wenn ich nichts verändert hab:
<? $filename = \"file_zipped.gz\"; $fname1 = \"file1.txt\"; $fname2 = \"file2.txt\"; // get content of file1 $fh = fopen($fname1, \'r\') or die(\"Can\'t open file\"); $fcontent1 = fread ($fh, filesize ($fname1)); fclose($fh); // get content of file2 $fh = fopen($fname2, \'r\') or die(\"Can\'t open file\"); $fcontent2 = fread ($fh, filesize ($fname2)); fclose($fh); // open file for writing with maximum compression $zp = gzopen($filename, \"w9\"); // write string to file gzwrite($zp, $fcontent1); gzwrite($zp, $fcontent2); //close archive gzclose($zp); ?>
Und $fcontent2 muss es trotzdem heißen :P -
HI,
Jop hab ich auch schon gemerkt ( auch PDFs kann man im Editor öffnen).
Nunja dann ist diese Funktion wohl nicht zur lösung meines Problems geeignet oder wie ?
Hat wer ne Ahnung wie ich das angehen soll ?
Oder wie siehts mim iCal aus? da jemand ne ahnung ich komm da nicht weiter ...
und den Standard durchzuarbeiten ... da seh ich keinen sinn. -
Es gibt für PHP eine ZIP-Erweiterung http://de2.php.net/zip die du allerdings erst aktivieren musst. Auf lima wird das deshalb nicht laufen, aber vielleicht findest du ja einen Server, bei dem das geht. Was ich da mal schnell getestet hat, mit dem ersten Beispielscript zum Erstellen einer zip-Datei auf der Seite, funktioniert das auch so wie gewünscht. Also zwei Dateien in eine Datei zippen.
Bei iCal kann ich dir leider gar nicht helfen. Aber google meint http://phpicalendar.net/ wenn du das nicht schon kennst. Keine Ahnung ob dir das weiterhilft. -
Für ical hab ich eh auch schon auf google gesucht (daher ist auch mein ergebnis)
aber der link führt eher zu einem gesammten kalender, der mir viel zu überladen ist;
Ich brauche eigentlich nur eine Klasse zum erstellen der iCal dateien.
Damit ich die Daten aus meinem bereits vorhanden Kalender an die Methoden der klasse übergebenkann und so meine iCal erhalte.
@ zip ..... deshalb nen anderen Space suchen kann ja auch nicht ne alternative sein ....blöd wäre es wenn ichs erst installieren müsste, kann man ja schließlich ned so einfach.
aber meine infophp() zeigt irgendwas Zip: enabled.
schaut ja einfacher aus als dass was ich mache danke!
-
Der phpicalendar steht unter der GPL, du kannst also mal nachsehen wie die das dort gemacht haben und dann ähnlich nachscripten.
@zip: in der phpinfo() müsste was von --with-zip stehen, damit die Funktionen aktiv sind. -
Das mit dem Zipen sollte so klappen.
ja, vl werd ich einen blick in den phpicalender werfen,
hmmm muss ich mich wohl wieder einschmöckern, wenn niemand eine einfachere Klasse kennt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage