amazon url zurechtschneiden

südpol

Erfahrenes Mitglied
Hi,

ich gebs zu, ich habe mich bis jetzt immer davor gedrückt regexen zu verwenden - irgenwie ging bis jetzt immer mit ein zwei if schleifen :-) *bitte nicht hauen*

Jetzt brauche ich es aber doch *heul* Ich habe mir dazu auch schon einige Anleitungen angeschaut und kann nun auch schon nach einfachen strings suchen und diese matchen. Ich will nun aber eine url zurecht schneiden und finde hierzu einfach kein passende Funktion die das leistet. Es geht dabei um amazon links in dieser Form:
http://www.amazon.de/exec/obidos/ASIN/3446227350/qid=1103639745/ref=pd_ka_4/028-1190935-2173365
Ich würde diese gerne in diese größe bringen:
http://www.amazon.de/exec/obidos/ASIN/3446227350/

Das reicht vollkommen aus und sieht nicht so blöd aus. Ich schaffe es schon die urls im allgemeinen zu matchen sprich ich habe eine varialbe $url in der steckt der gesamte url drin. Diese würde ich nun gerne überprüfen ob es sich um einen amazon link handelt und wenn ja nach dieser asin - nummer abschneiden.

Kann mir jemand sagen wie das geht?

Danke
 
Mal vorweg... ist die URL abgesehen von der ASIN immer gleich bzw. die ASIN immer gleich lang?

Dann könntest du einfach nur die ersten x Zeichen verwenden.

MfG.
 
Hab das jetzt mal geprüft und ich denke, dieser Schnipsel sollte dafür ausreichen:

PHP:
substr($amaz_url, 0, 49);

HTH xxenon
 
:-) ok ich hätte wohl dazu schreiben sollen, dass genau so mein quick hack aussieht :-) (da sind ja keine regex drin *g*

ich hätte das ganze gerne etwas generischer - wenn das geht. Amazon war hier nur ein Beispiel ich will auch noch andere module in meine klasse mit aufnehmen, die dann andere urls parsen können.

Danke aber für die Bestätigung und die schnelle Antwort!

Liebe Grüße
 
Hi,

nun, mit RegEx kenne ich mich auch nicht besonders aus, aber in diesem Fall würde ich mit mit strpos das erste Vorkommen eines Gleichheitszeichens suchen, bis zum letzten Backslash zurückgehen (strrchr) und mit substr alles davor zurückgeben. Ok, mag auch nicht die feine elegante Art sein, aber funktioniert.

Gruß
.
 
Zurück