C's strstr() ist wirklich sehr elegant, da es ja einfach einen Pointer auf das erste Zeichen zurück liefert. Das geht aber bei PHP nicht, weil dort Strings nicht einfach 0-terminierte Arrays sind, sondern structs, die auch die Länge des Strings separat speichern, damit Binärstrings (also welche, die NUL enthalten) ebenfalls verwendet werden können. Daher muss PHP bei strstr() eine Kopie des Teilstrings anlegen. Daher ist es hier noch effizienter strpos() zu verwenden.beate_r wrote:Ok, für die "quick'n dirty"-Version wäre ja auch strstr() das Mittel der Wahl.
Wird m.W. unmittelbar auf die entsprechende C-Funktion abgebildet. (Wenn ich sowas codieren würde, würde ich sogar den Code aus der C-Bibliotheksfunktion 1:1 einsetzen).
An Code-Injection (oder besser gesagt, XML Entity Injection) hatte ich hier überhaupt nicht gedacht – guter Punkt. Könnte tatsächlich ein Problem sein. Vermutlich sollte ich auf JSON umstellen, zumindest wenn es eine GUI für die Administration gibt.beate_r wrote:Zur Frage der Sicherheit: der String wird ja aus einer XML-Datei ausgelesen, in die er auf die eine oder andere Weise manuell eingetragen werden muss. Solange sichergestellt ist, dass diese Datei nicht anderweitig manipuliert worden ist, oder sonstwie Unsinn drinsteht -> Code Injection, wäre der primitive Ansatz m.E. sicher.
Mir ging es aber gerade auch darum, dass keine externen Bilder an die falsche Funktion übergeben werden; schon bei imagecreatefromjpeg() (Thumbnailerzeugung) kann es da u.U. Probleme geben (in Verbindung mit einer externen libgd, können korrupte JPEG-Dateien PHP mit einem fatalen Fehler aussteigen lassen). Daher habe ich Deinen Vorschlag mit einem fixen Thumbnail für externe Dateien bereits umgesetzt (bisher nur lokal; muss noch ein bisschen testen).
Du bist vermutlich eine der wenigen, die den Content bisweilen noch von Hand bearbeiten. Wenn Du Zeit hast, schau Dir doch bitte mal https://github.com/TN03/XH_split/archive/master.zip an; würde dieses geändert content.htm Format passen? Siehe auch den mittlerweile ellenlangen Thread XH: alternatives Seitensplitten unabhängig von <hx> - Tags.beate_r wrote:Den durfte ich dann einzeln mit dem Emacs wieder rauspuhlen... das muss zu CMSimple-2.9-oedit-Zeiten gewesen sein.
PS: Unterstützung für externe Bilder ist nun verfügbar. Videos funktionieren im Prinzip im Thumbnail-Modus auch schon. Da muss aber noch nachgebessert werden.