Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 03. Januar 2012 14:43

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

[GELÖST] Umgekehrtes truncate

Hallo,

stehe mal wieder vor einem Problem:
Ich habe im ListIt2-Modul diese Ausgabe für eine hochgeladene Datei:
images/catalog/1-1101-k/1-1101-v.jpg oder
images/catalog/1-1102-k/1-1102-v.jpg aber auch mal
images/catalog/1-1103-v/1-1101-v.jpg usw.

Wie kann ich da jetzt den Dateinamen extrahieren? Da die Ordnerstruktur immer gleich ist (der letzte Unterordner variiert aber), die Zeichenanzahl also ebenfalls, wollte ich es mit truncate machen. Allerdings nimmt das ja nur hinten etwas weg. Ich möchte aber, dass am Ende das hier stehen bleibt:
1-1101-v

Naiv würde ich es so schreiben:

{assign var="dateiname" value=$item->fielddefs.produktbild.value|replace:".jpg":""|reverse_truncate:8}

Wie bekomme ich das
images/catalog/x-xxxx-x/ weg?
Ich habe mich schon an regex_replace versucht, bin jedoch gescheitert, da auch immer der Dateiname bis auf den Buchstaben mit verschwindet.

Ich hoffe, das ist halbwegs verständlich...

Beitrag geändert von jeff1980 (03. Januar 2012 14:44)

Offline

#2 03. Januar 2012 14:59

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] Umgekehrtes truncate

{$item->fielddefs.produktbild.value|basename}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 03. Januar 2012 15:01

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [GELÖST] Umgekehrtes truncate

hmm. basename kannte ich auch noch nicht. aber da gibts dann vermutlich probleme wenn es mehr als einen punkt im dateinamen gibt.
ich verwende für sowas dann {$mystring|substr:5:0}
dabei würden dann die ersten 5 zeichen abgezogen werden.

Offline

#4 03. Januar 2012 15:04

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] Umgekehrtes truncate

Punkte dürften kein Problem sein. Weitere Details siehe:
http://php.net/manual/de/function.basename.php


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#5 03. Januar 2012 15:07

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [GELÖST] Umgekehrtes truncate

Hi,

das ging schnell - danke smile.
Beide Wege gehen. Ich habe mich schon wund gesucht - allerdings nur in Verbindung mit Smarty. Dabei bin ich nicht auf die PHP-Seiten gekommen.

Ich denke, basename ist letztendlich eleganter. Die Ordnerstruktur ist und soll zwar gleich bleiben. Falls sich aber die Zeichenzahl doch mal ändert, ziehe ich nun basename vor.

Aber substr bleibt auch abgespeichert...

Edith:
Letztlich sieht es nun so aus:

{assign var="bild_name" value=$item->fielddefs.artikelbild.value|basename|replace:".jpg":""}

So kann ich es einfacher in die if-Abfragen einbauen.

Beitrag geändert von jeff1980 (03. Januar 2012 15:09)

Offline

#6 03. Januar 2012 15:17

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] Umgekehrtes truncate

jeff1980 schrieb:

Beide Wege gehen. Ich habe mich schon wund gesucht - allerdings nur in Verbindung mit Smarty. Dabei bin ich nicht auf die PHP-Seiten gekommen.

Merke: man kann immer PHP in Smarty einbauen. Jede PHP Funktion lässt sich so auch verwenden. Beachtet muss dabei, dass z.T. die Reihenfolge der Werte bei reinen PHP Funktionen anders ist als in Smarty. Siehe hier z.B. http://www.blattertech.ch/blog/49/70/Sm … andeln.htm


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline