Skocz do zawartości

preg_replace - problem z rozmiarem obrazka, bbcode


j_t_r

Rekomendowane odpowiedzi

Witam,

Mam forum własnej roboty, na którym można między innymi hotlinkować obrazki kodami bbcode.

Funkcję która przepisuje bbcode na html mam taką:

$in=preg_replace("#\[img\](.*?)\[/img\]#si", "<img src=\"\\1\" border=\"0\" alt=\"Obrazek\" />", $in);

Działa oczywiście jednak jest problem gdy ktoś hotlinkuje bardzo duże zdjęcie - rozsadza wtedy całe forum.

Chciałbym aby funkcja ta dodawała parametr width jeśli dany obrazek przekraczałbym pewną szerokość. Obrazki nie przekraczające szerokości np. 500 pikseli wyświetlane byłyby w oryginalnym rozmiarze.

Czy jest to wykonalne?

pozdrawiam,

Odnośnik do komentarza
Udostępnij na innych stronach

Twój kod jest podatny na atak XSS, zamiast (.*) wstaw wyrażenie regularne sprawdzające poprawność URLa bo można na twoim forum wstrzyknąć dowolny kod HTML.

Co do sprawdzania rozmiaru. Musisz mieć włączone alow_url_fopen w konfiguracji PHP, wyciągnąć poprzez preg_match URL obrazu i wykonać na nim funkcję getimagesize. w ten sposób możesz sprawdzić, czy URL prowadzi do obrazu a jeżeli tak to dostaniesz jego wymiary.

Sprawdź liderów systemów wymiany linków:

linkme.pl (stały), gotlink.pl (rotacyjny)

alexain.jpgalexaol.jpgalexaat.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności