Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Parsowanie treści i zamiana url'ów
Forum PHP.pl > Forum > PHP
Karioka
Witajcie!

Mam napisany prosty parser, który ułatwia mi redagowanie treści.

W pobieranych treściach mam zapisane adresy do grafiki w postaci http://www.adres.pl/katalog/katalog2/katalog3/plik.jpg

Najpierw pojawił się problem jak wyciągnąć z tego adresu nazwę pliku jpg, ale w manualu php znalazło się takie rozwiązanie:

$jpg = substr(strrchr($adres, '/'), 1); (może jest jakieś ciekawsze rozwiązanie? RegExp?)

Wszystko ładnie działa. Jednak chcę, aby z pobieranych treści ciąg 'http://www.adres.pl/katalog/katalog2/katalog3/plik.jpg' był zamieniany na 'grafika/plik.jpg'

Wszystko byłoby dla mnie proste, gdyby nie fakt, że adres do pliku się zmienia, podobnie jak sama nazwa pliku jpg. Czasami jest to:
http://www.adres.pl/katalog/katalog2/katalog3/plik.jpg
Innym razem: http://www.adres.pl/katalog/katalog2/plik6.jpg
Jeszcze innym razem http://www.adres.pl/plik6.jpg

Jak rozwiązać ten problem? Treść przechowuję z zmiennej i przed wrzuceniem jej do bazy chcę adresy do grafiki pozmieniać na 'grafika/nazwa_pliku.jpg'.

Wyrażenia regularne to dla mnie czarna magia. W skrócie miałoby to działać tak.

Zawartość zmiennej:

$tresc = "Przykładowa treść i adres 1 http://www.adres.pl/katalog/katalog2/katalog3/plik.jpg oraz adres 2 http://www.adres.pl/katalog/plik.jpg";

Zamieniamy na:

$tresc = "Przykładowa treść i adres 1 grafika/plik.jpg oraz adres 2 grafika/plik.jpg";
masahuku
Witam,

polecam zainteresowanie się mod_rewrite. Możesz też przekazywać nazwę pliku w osobnej zmiennej w np $_GET.
Karioka
Wiem, wiem, ale tu nie o to chodzi.

W zmiennej mam treść HTML i tam chcę podmienić adresy. Gdyby był niezmienne pewnie dałoby radę zrobić to poprzez ereg_replace ale struktura katalogów w adresie, jak i nazwa pliku się zmieniają.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.