Witam, zrobiłem prostą funkcję do forum, która zamienia w postach adres typu
Kod
http://malgosia99.wrzuta.pl/audio/123/super-piosenka
na adres postaci
Kod
http://wrzuta.pl/aud/file/123


Kod wygląda tak:
  1. <?php
  2. function WrzutaHack($String) {
  3.        $String = str_replace(array("&quot;","&amp;"),array('"','&'),$String);
  4.        $String = preg_replace("#http://([a-z0-9]+).wrzuta.pl/audio/([a-z0-9]+)/.*$#i",                     "http://wrzuta.pl/aud/file/$2",$String);
  5.        return $String;
  6.      }
  7. ?>


Działa OK, ale jeżeli dodam w komentarzu np. 3 linki to pierwszy link zamienia poprawnie, ale już kolejnego nie widać, ogólnie wszystko co napiszę po linku do wrzuty znika. Co jest nie tak - mógłby ktoś to poprawić ?

Edit: Już wiem gdzie jest błąd w preg_replace, zrobiłem to tak:
Kod
preg_replace("#http://([a-z0-9]+)\.wrzuta\.pl/audio/([a-z0-9]+)/[a-zA-Z0-9._-]*#i",                     "http://wrzuta.pl/aud/file/$2/.mp3",$String);

Nie wiem czy w 100% poprawnie, ale działa smile.gif

PS - ciężko znaleźć dobry tutorial z wyrażeń regularnych. Mi pomógł ten: http://www.phpf1.com/tutorial/php-regular-expression.html