| |
| 17 Optionen für korrosionsbeständige Teile: Metalle und Nachbearbeitungen, ein Fachartikel
|
Autor
|
Thema: PHP; Anzahl in einem Array (1053 mal gelesen)
|
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3864 Registriert: 29.09.2004 SolidWorks 2006 SP5 Intel Core 2CPU (2.4 GHz) 2 GB RAM Nvidia FX 560 Windows XP SP2 Novell als Netzwerk
|
erstellt am: 04. Feb. 2008 07:49 <-- editieren / zitieren --> Unities abgeben:
Hallo, Wollte folgende Funktion verwenden, und bin ein wenig auf die Schnau... gefolgen. In einem Array belege ich z.B. die Positionen 0,1,2 und 7. Lase ich nun mit count() die Array Variable auswerten bekomme ich eine 4. Ok, anschaulich ist dies auch klar. Was ich aber bräuchte, ist der Wert 7, damit ich mit einer for Schlaufe alle Werte des Array in ein File schreiben kann. Auch der Befehl sizeof () bringt mit eine 4, und nicht die gewünschte 7. Kennt jemand einen entsprechenden Befehl für php? Gruss Mike
------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 04. Feb. 2008 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
|
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3864 Registriert: 29.09.2004 SolidWorks 2006 SP5 Intel Core 2CPU (2.4 GHz) 2 GB RAM Nvidia FX 560 Windows XP SP2 Novell als Netzwerk
|
erstellt am: 04. Feb. 2008 10:16 <-- editieren / zitieren --> Unities abgeben:
Ich muss glaub ich etwas weiter ausholen. Für meine Bildergalerie hinterlege ich pro Event ein File, wo die Beschreibungen für die Bilder hinterlegt sind. Für jedes Bild ein Zeile (1. Bild --> 1. Zeile etc.). Lokal an meinem PC zu Hause sind die Files nicht schreibgeschützt, also kann ich sie per PHP ändern (im Web sind sie nur zum lesen und Ausführen freigegeben). Nun habe ich folgendes in php realisiert. - Laden der entsprechenden Seite wo das Einzelbild zu sehen ist - Im Formularfeld wird der Eintrag für die Beschreibung eingetragen - Mit dem Button wird per Post-Methode der Inhalt des Formfeldes in eine Variable gespeichert. - Einlesen des bestehendes File, jede Zeile wird in einen Array gespeichert (Zeile ist Arrayposition um 1 versetzt, da der Array bei 0 anfängt) Wenn das File noch nicht vorhanden ist wird es erzeugt - Über eine Variabel aus der URL (diese Variabel bestimmt welches Bild angezeigt wird, wird die richtige Position des Arrays überschriebten bez. neu erzeugt. - Löschen des Files und neu erzeugen des Files --> File ist leer - Ausschreiben des Array in das neue leer File Nun kann es sein, dass beim Auslesen des Files die Positionen 0,1,2,3 vom Array belegt werden und über die Postmethode die Position 7 neu eingespeichert wird. Beim Ausschreiben müssen nun alle Positionen, 0-7 ausgegeben werden, da bei der Abfrage vom Bildbeschreibungstext direkt die Zeilennummer ausgelesen wird. Hatte gerade ein Gespräch mit einem Geschäftskollegen. Ev. kann ich mit einem Vergleich arbeiten. Nach dem Einlesen des Files kann ich über count die Anzahl Einträge abfragen, es dürfen keine Lücken im Array vorhanden sein. Über die Variable welche ich zum Einspeichern der neuen Bildbeschreibung in der richtigen Position des Array verwende habe ich diese Position. Der grössere Wert kann ich für die For Schlaufe zum Ausschreiben des Array verwenden. Muss ich heute Abend mal probieren. Gruss Mike Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3864 Registriert: 29.09.2004 SolidWorks 2006 SP5 Intel Core 2CPU (2.4 GHz) 2 GB RAM Nvidia FX 560 Windows XP SP2 Novell als Netzwerk
|
erstellt am: 04. Feb. 2008 20:47 <-- editieren / zitieren --> Unities abgeben:
Es tut, wenn auch etwas umständlich. Die Lücke, welche zwischen dem letzten Eintrag im File ist, und dem neu einzuspeichernden Eintrag muss ich über eine For Schlaufe mit Pseudoeinträgen füllen. Hmmm, der Syntax von php ist teilweise doch etwas verwirrend. Mit \n bekomme ich einen Zeilenumbruch im durch php erzeugten Quelltext Wenn ich das gleich in der Ausgabe in eine File möchte, muss ich \r\n anwenden. Mit nur \n oder nur \r ist zwar für das spätere Auslesen des Files ein Zeilenumbruch vorhanden. Wenn ich aber das File im notepad öffne ist nur ein "hässliches" Viereck anstelle des Zeilenumbruchs. Hauptsache jetzt funktioniert alles, und ich kann meine nächste Idee in Angriff nehmen Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 05. Feb. 2008 05:42 <-- editieren / zitieren -->
Hallo Oberli, wäre es nicht einfacher, die fehlenden Elemente in deinem Array einfach mit Nullen aufzufüllen? Bläst zwar das Arry etwas auf, dürfte aber eine einfacherer Abfrage bringen. Viele Grüße, CEROG |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3864 Registriert: 29.09.2004 SolidWorks 2006 SP5 Intel Core 2CPU (2.4 GHz) 2 GB RAM Nvidia FX 560 Windows XP SP2 Novell als Netzwerk
|
erstellt am: 05. Feb. 2008 07:28 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Oberli Mike: Die Lücke, welche zwischen dem letzten Eintrag im File ist, und dem neu einzuspeichernden Eintrag muss ich über eine For Schlaufe mit Pseudoeinträgen füllen.
Zitat: Original erstellt von CEROG: wäre es nicht einfacher, die fehlenden Elemente in deinem Array einfach mit Nullen aufzufüllen? Bläst zwar das Arry etwas auf, dürfte aber eine einfacherer Abfrage bringen.
Anstelle der Nullen hab ich den Laufindex + 1 verwendet, so dass die Zeilennummer eingetragen wird. Ich als Mensch kann mich so besser orientieren wo ich bin, wenn ich das txt-File mal öffne. BTW: Hab gestern noch was an der HP rumgeschraubt. Sollte jetzt auch in anderen Browsern vernünftig ausschauen. Werde es heute beim Kollegen in der IT, der hat einen Mozilla Firefox installiert, optisch prüfen. Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 12. Feb. 2008 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
Mike, bin mir zwar nicht sicher ob ich das richtig verstanden habe... <?php function get_last($array){ $c = count($array)-1; // wieso -1? weil auch hier started das ganze bei 0. $num = $array[$c]; print $num; } $array = array(0,1,2,7); get_last($array); ?> So bekommst auch Deine 7 raus... eigentlich bekommst Du so immer die letzte Zahl (oder was auch immer Du in Deinem Array hast) raus.
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3864 Registriert: 29.09.2004 SolidWorks 2006 SP5 Intel Core 2CPU (2.4 GHz) 2 GB RAM Nvidia FX 560 Windows XP SP2 Novell als Netzwerk
|
erstellt am: 13. Feb. 2008 09:05 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von G. Dawg:<?php function get_last($array){ $c = count($array)-1; // wieso -1? weil auch hier started das ganze bei 0. $num = $array[$c]; print $num; } $array = array(0,1,2,7); get_last($array); ?>
Hallo G.Dawg Wenn ein Array folgendermassen gefüllt wird $a[0] = a $a[1] = b $a[2] = c $a[4] = d #3 fehlt absichtlich $a[5] = e $a[6] = f dann bekommst du mit $c = count($a)-1 den Wert 5, da 6 Positionen im Array belegt sind. Über $num = $a[$c] wird der Wert e in die Variable $num gespeichert. Hintergrund: das php soll mir Beschreibungen zu Bildern in ein txt Speichern, es ist aber nicht jedes Bild mit einer Beschreibung versehen. Somit ist nicht jede Stelle im Array mit einem Wert belegt. Eine Lösung welche für mich funktioniert habe ich weiter oben beschrieben. Ev. baue ich die Lösung noch um auf die Variaten, dass bestimmt wird wie viele Bilder im Ordner liegen, und somit der höchste Wert im Array bekannt ist, mehr kann/darf es nicht geben. Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 13. Feb. 2008 09:33 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
Ich weiss, das löst Dein Problem nicht so wie Du es möchtest, aber das sollte mehr eine Richtungsanzeige sein! Ich würde das nicht über einen Array machen, sondern per Dateiname. ### Ich habe da mal eine keine Gallery zusammengebastelt. Ich habe Dir die Dateien angehängt. Dateien hochladen (am besten in ein Unterverzeichnis) und per gallery.php?open=gallery starten. Das Ganze ist dynamisch, kannst also beliebig Order erstellen und wieder löschen. Die Kommentare werden aus den Dateien im Verzeichnis gelesen. Das Alles habe ich von der Website hier: http://spgm.sourceforge.net/ Ich habe einfach nur das herausgenommen was ich brauchen konnte ... da dies nur ein Testprojekt ist und nie zum Einsatz kam, kann ich das Dir gut "geben" Was Du jetzt noch "brauchst" ist das da: http://www.bluepalmtrees.com/?id=10 Alles richtig einstellen und los gehts! Seeehr praktisch! habe es auf http://www.lightson.ch im Einsatz, zusammen mit der SPGM-Gallery. (Habe mir noch ein Plugin geschrieben, welches die Bilder in den Verzeichnisen in die Datenbank einliest. Jetzt kann ich ganz einfach die Zufallsbilder auf der Seite zeigen lassen.) Das ist natürlich nur, wenn Du Deine Gallery (oder was auch immer) noch nicht fertig hast. Ich hoffe, es hilft Dir trotzdem ein wenig. ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3864 Registriert: 29.09.2004 SolidWorks 2006 SP5 Intel Core 2CPU (2.4 GHz) 2 GB RAM Nvidia FX 560 Windows XP SP2 Novell als Netzwerk
|
erstellt am: 13. Feb. 2008 09:40 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von G. Dawg: Das ist natürlich nur, wenn Du Deine Gallery (oder was auch immer) noch nicht fertig hast. Ich hoffe, es hilft Dir trotzdem ein wenig.
Ja, meine Gallery ist "fertig". Also sie funktioniert, fertig ist man mit sowas ja nie Wenn ich einen neuen Ordner erstelle, und dabei meinen Syntax einhalte, dann wird das Menu automatisch richtig eingelesen, und die Bilder werden gefunden etc. Eigentlich muss ich nur wissen, welche Bilder ich will, diese auf die richtige Grösse ändern (grosse und kleine), und die Bilder richtig benennen. (Grösse ändern mache ich per bat-Datei über den Irfanview. Dateinahmen per Makro in Excel). Vorlageverzeichnis für neuen Event kopieren, richtig benennen, und die Bilder in die richtigen Unterordner speichern. Noch das ganze hochladen und fertig ist es. Werde mir deine Files aber sicher ansehen. Da ich mit PHP noch in den Kinderschuhen stecke kann ich noch viel lernen [Edit] www.oberlix.ch oben rechts den Button Events..... [/Edit] Gruss Mike ------------------ The Power Of Dreams
[Diese Nachricht wurde von Oberli Mike am 13. Feb. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 13. Feb. 2008 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
Ah, Grindelwald! Da gehe ich auch schon bald wieder hin! Das Snowpenair auf der Kleinen Scheidegg! Noch was anderes: Mehrzahl von Party ist Parties nicht Partys. Das Tool von BluePalmTrees macht die Thumbnails selber. Nur die grossen Bilder hochladen und fertig. Per FTP oder direkt einzelne Dateien. Bilder skaliere ich mit ACDSee (3.1 gibts gratis) auf eine Höhe fixieren, hochladen, im SPGM Webministration Verzeichnis auswählen, warten, fertig. Bilder betexten und wenn nötig skalieren oder zusschneiden. Löschen oder umbenennen geht da auch. Ich finde die Dropdowns auf Deiner Seite praktisch...! Auf http://www.epaarberg.org/index.php?action=gallery ist da ein wenig ein Durcheinander im Vergleich zu den Dropdowns! Wenn Du noch andere Fragen haben solltest, kann ich Dir vielleicht per skype weiterhelfen - Wenn Du möchtest. ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3864 Registriert: 29.09.2004 SolidWorks 2006 SP5 Intel Core 2CPU (2.4 GHz) 2 GB RAM Nvidia FX 560 Windows XP SP2 Novell als Netzwerk
|
erstellt am: 13. Feb. 2008 10:19 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von G. Dawg: Ich finde die Dropdowns auf Deiner Seite praktisch...!
Danke, der Inhalt wird wie geschrieben automatisch über das php gefüllt. ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |