Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Wyrażenia regularne]Zamiana adresów
Forum PHP.pl > Forum > PHP
Virti
Witam,
mam problem, mam taki kod:
Kod
url('files/asd.jpg');
url('files/asd1.jpg');
url('files/as2.jpg');
url('http://example.com/files/asd3.jpg');


Musze w nim zamienić wszystkie relatywne adresy ( np. files/asd.jpg ) na adresy absolutne: ( http://example.com/files/asd.jpg ). Problem polega na zamianie tylko i wyłącznie tych, które są relatywne. Niestety nie jestem zbyt dobry w konstruowaniu wyrażeń regularnych, więc zwracam się do Was po pomoc.
Miałem kilka pomysłów jak to wykonać, jednak ten z preg_replace(); wydaje się najlepszy. Niestety z wyrażeniami kuleję.

Bylbym bardzo wdzięczny za pomoc,
Pozdrawiam, Virti
kilas88
A może lepiej zastosować element HTML, BASE?

Kod
<base href="http://example.com/" />


Jak koniecznie ma to przechodzić przez regex to co innego, można napisać i tak, jednak to będzie dużo dużo mniej wydajne rozwiązanie.
Wicepsik
Najprostsze rozwiązanie

  1. function url($url){
  2. return strstr($url, 'http://example.com/') ? $url : 'http://example.com/'.$url;
  3. }
  4.  
  5.  
  6. echo url('files/asd.jpg');
  7. echo url('files/asd1.jpg');
  8. echo url('files/as2.jpg');
  9. echo url('http://example.com/files/asd3.jpg');
Virti
Dzięki wielkie, Wicepsik Twoje rozwiązanie jest po prostu idealne do moich potrzeb.
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.