Hallo,
ich muss unbedingt noch ein paar alte URLs aus vBulletin-Zeiten umschreiben, habe da aber ein kleines Problem:
Ich habe Links wie dieser:
Daraus soll werden:
Dafür habe ich erst ein paar Tests mit mit dem Post Replace gemacht:
Regulärer Ausdruck: #album\.php\?albumid\=([0-9]+)\&attachmentid\=([0-9]+)#siU
Replacement String: index.php?media/albums/\1
Das funktioniert mit Post Replace auch prima, ich muss aber noch die AlbumID umschreiben und kann daher Post Replace nicht nutzen (die Album-ID wandel ich über ein PHP-Script selbst um, die AttachmentID kann entfallen).
Mit PHP habe ich jedoch, mit identischem RegEx-Ausdruck, das Problem, dass ein Teil der AttachmentID in die Ziel-URL "gemixt" wird:
Mein PHP-Code:
Ich verstehe es ehrlich gesagt nicht, weil es mit Post Replace ja auch geht. Den Code davon habe ich mir auch angesehen, aber leider nicht kapiert, warum dort 2x preg_replace() verwendet wird ...
Hat vielleicht jemand eine Idee, was falsch laufen könnte?
Danke!
ich muss unbedingt noch ein paar alte URLs aus vBulletin-Zeiten umschreiben, habe da aber ein kleines Problem:
Ich habe Links wie dieser:
Code:
http://www.domain.de/forum/album.php?albumid=816&attachmentid=15480
Code:
http://www.domain.de/forum/index.php?media/816
Dafür habe ich erst ein paar Tests mit mit dem Post Replace gemacht:
Regulärer Ausdruck: #album\.php\?albumid\=([0-9]+)\&attachmentid\=([0-9]+)#siU
Replacement String: index.php?media/albums/\1
Das funktioniert mit Post Replace auch prima, ich muss aber noch die AlbumID umschreiben und kann daher Post Replace nicht nutzen (die Album-ID wandel ich über ein PHP-Script selbst um, die AttachmentID kann entfallen).
Mit PHP habe ich jedoch, mit identischem RegEx-Ausdruck, das Problem, dass ein Teil der AttachmentID in die Ziel-URL "gemixt" wird:
Code:
http://www.domain.de/forum/index.php?media/8165480
Mein PHP-Code:
Code:
$input = array(
'regex' => "#album\.php\?albumid\=([0-9]+)\&attachmentid\=([0-9]+)#siU";
'replace' => "index.php?media/albums/\$1");
$new_msg = preg_replace($input['regex'], $input['replace'], $message);
Ich verstehe es ehrlich gesagt nicht, weil es mit Post Replace ja auch geht. Den Code davon habe ich mir auch angesehen, aber leider nicht kapiert, warum dort 2x preg_replace() verwendet wird ...
Hat vielleicht jemand eine Idee, was falsch laufen könnte?
Danke!