[PHP] - podmienianie stringa na adres www

0

Witam!

Mam następujacy problem: chciałbym, aby dowolny string zawierający kilka adresów www.winamp.comlink jakis link www.winamp.com jakis link jakis lik www.winamp.com" w momencie wyświetlania zamianiał sie na adres url, mam nadzieję że to dość zrozumiałe, męczę się z tym już druga godzinę i póki co udało mi sie tylko wyciąć i podmienić pierwszy ares www a co z kolejnymi - pomocy

pozdrawiam Mariusz(sanneo)

0

niezbyt rozumiem...

0

Wyrazenia regularne PHP. Nawet na stronie PHP.net podczas omawiania preg_replace masz zdaje sie przykald jak to zrobic.

0

no niestety opis funkcji jest ale przykładu zmianiającego string na adres url nie znalazłem :( help...

0

Źródła Coyote....

0

a dokładniej co masz na mysli pisząc Źródła Coyote....

0

a dokładniej co masz na mysli pisząc Źródła Coyote....

http://4programmers.net/coyote/

0

Niestety CVS cos nie dziala i nie mozna sciagnac zrodel. Ale tutaj masz kodzik - powinien dzialac, aczkolwiek nie sprawdzalem:

$patterns = "#\([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\#si";
$replacements = "<a target=_blank href=\\1\\2>\\1\\2</a>";

$message = preg_replace($patterns, $replacements, $message);
0

zrobiłem takie coś

[code]$message = "napis napis http://www.sanneo.boo.pl jsdhjadh sjadhasj dhj";
$patterns = "#([a-z]+?://){1}([a-z0-9-.,?!%*_#:;~\&$@/=+]+)#si";
$replacements = "<a target=_blank href=\ 1\2>\ 1\2</a>";
$message = preg_replace($patterns, $replacements, $message);
echo "$message";[/code]
wyskakuje bład:
[code]Warning: No ending delimiter '#' found in c:\usr\apache\httpd\html\strony\testx.php on line 5[/code]
Próbowałem pododawać krzyżyk na końcu i <ort>uzsówać </ort>ten przed "si"
Dalej nie działa

0

Dziekuję za podpowiedzi, zmodyfikowałem co nieco code pana Adama teraz jest ok obsługuje url'e w postaci www.link.pl http://www.link.pl https://www.link.pl ftp://www.link.pl
pozostawiam poniżej kod dla potomnych :)


$znaki = "#([ftp]{3}\:\/\/|[htps]{5}\:\/\/|[htp]{4}\:\/\/|[w]{3})([a-zA-Z0-9\.\?\=\-\_\/\&\@]{4,})#";
$zamiana = "<a href='http://\\ 1\\ 2' target='_blank'>\\1\\2</a>";
$txt = preg_replace($znaki, $zamiana, $txt);
$txt = str_replace("http://http://","http://",$txt);
$txt = str_replace("http://https://","https://",$txt);
$txt = str_replace("http://ftp://","ftp://",$txt);
echo "$txt";

pozdrawiam i jeszcze raz wielkie dziekuję za wskazówki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1