Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] parsowanie linkow
Forum PHP.pl > Forum > PHP
Babu
Mamy takie co¶:

z bazy podbierana jest zmienna np.:

$string = "Ala lubi kota http://mojadres.pl";

Problem tkwi w tym aby te http://mojadres.pl byl zmieniany na <a href="http://mojadres.pl">
nastepnie calosc wyswietlona przez print w postaci

"Ala lubi kota <a href="http://mojadres.pl">"

Gdyby to bylo w druga strone byloby chyba latwiej

Dzieki za pomoc
dyktek
załatwisz to wyrażeniem regularnym, najpierw sprawdzasz czy w stringu masz jaki¶ url a potem str_replace zamieniasz to na link

albo od razu preg_replace

edit: nudzi mi się dzi¶ w pracy tongue.gif

  1. <?php
  2. $wyr = '/(http[s]?://{1}[w.-]+.w{2,6}.*?)(.*)/';
  3.  
  4. $string = 'http://www.onet.pl/dfhdfh.php';
  5.  
  6. echo preg_replace( $wyr, '<a href="0">0</a>', $string );
  7. ?>

powinno działać
Babu
dziala jednak nie do konca jesli cos jest przed linkiem jest wporzadku natomiast gdy
cos jest jeszcze za linkiem jakis tekst zamyka dopiera tag </a> na koncu tekstu
dyktek
  1. <?php
  2. $wyr = '/(http[s]?://{1}[w.-]+.w{2,6}.*?)(.*)([[:space:]]{1,})/';
  3. ?>


podmien wyr na to
Babu
Warning: preg_replace(): Unknown modifier '/' in... winksmiley.jpg
dyktek
  1. <?php
  2. $wyr = '/(http[s]?://{1}[w.-]+.w{2,6}.*?)(.*)/';
  3. ?>


cu¶ wczoraj te bb cody dziwnie działały na forum smile.gif
Babu
link zostaje taki jaki byl nie zmienia sie winksmiley.jpg
dyktek
fakt zle wyrazenie wkleiłem
  1. <?php
  2. $wyr = '/(http[s]?://{1}[w.-]+.w{2,6}.*?)(.*)([[:space:]]{1,})/';
  3. ?>
Babu
pierwszy problem winksmiley.jpg

jesli link sie zmieni to wyglada to tak <a href="http://php.pl ">http://php.pl </a> spacja po linku
jesli po linku jest - a nie literka link sie nie zmienia winksmiley.jpg
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.