Regex für Flickr

tsbmusic

Erfahrenes Mitglied
Moinsen,

ich brauche zwei reguläre Ausdrücke undzwar einmal für den Flickr-Benutzer und einmal für ein Flickr Bild. Allerdings ist im Link für das Bild der Teil vom Benutzer Link enthalten und ich kriege keinen Regex hin der das unterscheiden kann. Mein Ansatz sieht bisher so aus:

Für ein Bild:
PHP:
/https?:\/\/.*flickr\.com\/photos\/[a-zA-Z0-9@]+\/([0-9]+)/

Für den Benutzer:
PHP:
/https?:\/\/.*flickr\.com\/photos\/([a-zA-Z0-9@]+)(\/)?(with\/[0-9]+)?/

Kann mir jemand weiterhelfen?

tsbmusic
 
Dazu bräuchte man mal die Originallinks, die bearbeitet werden sollen.
Ich empfehle Dir weiterhin:
Online RegEx Tester
Rumprobieren bis es klappt, hartnäckig bleiben! Wenn es immer noch nicht klappen sollte hier nochmal nachfragen.

RegEx Tutorial
 
Zuletzt bearbeitet:
@tsbmusic - Die API hilft Dir da nicht weiter? Warum nicht den "legalen" Weg gehen? (Nachtrag: sorry, das ist keine sinnvolle Antwort, werde morgen darüber sinnieren..)

mfg chmee
 
Zuletzt bearbeitet:
Die für die Fotos sehen so aus:

Code:
http://www.flickr.com/photos/57063834@N03/7073753609/in/photostream
Code:
http://www.flickr.com/photos/57063834@N03/7073753609/
Code:
http://www.flickr.com/photos/57063834@N03/7073753609/in/pool-52240202220@N01

Die Benutzer Links so:

Code:
http://www.flickr.com/photos/57063834@N03/
Code:
http://www.flickr.com/photos/57063834@N03/with/7073753609/
 
Oder mit sscanf:

PHP:
<?php
//$link = 'http://www.flickr.com/photos/57063834@N03/7073753609/in/photostream';
//$link = 'http://www.flickr.com/photos/57063834@N03/7073753609/';
$link = 'http://www.flickr.com/photos/57063834@N03/7073753609/in/pool-52240202220@N01';
//$link = 'http://www.flickr.com/photos/57063834@N03/';
//$link = 'http://www.flickr.com/photos/57063834@N03/with/7073753609/';

sscanf($link, 'http://www.flickr.com/photos/%[^/]/%[^/]/%[^/]/%[^/]', $user, $pool, $t, $where);

echo $user . "<br/>";
echo $pool . "<br/>";
echo $t . "<br/>";
echo $where . "<br/>";

Edit: Wobei du für die andern Links den selben Format-String benutzen kannst, die jeweiligen Variablen sind dann halt gefüllt oder nicht.
 
Zuletzt bearbeitet:
Zurück