Portál AbcLinuxu, 4. května 2025 02:11

Jak rozpoznat odkaz na webovou stránku v textu?

12.12.2007 20:01 | coding | poslední úprava: 13.12.2007 08:29

$anyText = "A odkaz je http://prdel.cz ale take treba ve zkracenem formatu www.prdel.cz. Co s tim?";

$text = preg_match_all('@((https?://|www)([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $anyText, $out);

$urls = array_shift($out);

var_dump($urls);

Výsledek:

array(2) {
  [0]=>
  string(12) "http://prdel.cz"
  [1]=>
  string(22) "www.prdel.cz"
}
       

Hodnocení: 22 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

=^..^= AmigaPower® avatar 12.12.2007 20:09 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Odpovědět | Sbalit | Link | Blokovat | Admin
...moc hezký formátování ;-)
I♥DRX * www.KERNELULTRAS.org
13.12.2007 10:20 svatekr | skóre: 18 | blog: Svatekr | Teplice
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Odpovědět | Sbalit | Link | Blokovat | Admin
Funguje do okamžiku, než je odkaz http://mail.centrum.cz uveden ve zkráceném formátu mail.centrum.cz. Ale jinak moc pěkná ukázka regulars.
Každé zbytečně vyřčené slovo je vyřčeno zbytečně.
13.12.2007 10:35 Costra | skóre: 3 | blog: Bláznovy žluté lepící papírky
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Jiste, ale ceho se v tu chvili chytnout, potrebujes neco typickeho pro url. Myslim, ze dve tecky jsou malo na to, abych z toho usuzoval, ze jde o url... jako kazde automaticke reseni, i toto ma sve meze.
Zdenek.Z avatar 13.12.2007 13:25 Zdenek.Z | skóre: 14
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Nenapadá mě moc věcí, které by měly mít dvě tečky v sobě a nebýt URL. (Pomíjím lidi, co neví, že se za tečkou píše mezera.) Snad jen nějaký název balíky/třídy v Javě nebo volání nějaké metody v některých jazycích. To by se dalo vyřešit tím, že by se kontrolovalo, jestli za poslední tečkou je nějaká TLD.

Ale jak už tu padlo, radši využít hotovou knihovnu.
18.12.2007 12:58 shshsh
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Jak ma URL vypadat je dano RFC a dalsimi dokumenty. Nejaky "mail.centrum.cz" neni URL ale jen nejaky retezec znaku, nic vic, nic min. Nekde dole jsem dal link na program, v nemz lze vetsinu regularnich vyrazu pro ruzna URL spatrit a pouzit je snadno i jinde, popr. upravit na jiny nez Perlovsky regularni vyraz (napr. POSIXovy). Je samozrejme chybou [X]HTML a spol., ze umoznuji vlozit do hyperlinku jako odkaz i neco, co odkazem neni, ale s tim se holt musime naucit zit (uznavam, ze to je nekdy velice tezke). :-(
13.12.2007 11:19 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Odpovědět | Sbalit | Link | Blokovat | Admin
URI::Find
18.12.2007 12:44 shshsh
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Odpovědět | Sbalit | Link | Blokovat | Admin
Tady mate program a vysvetleni k nemu. Nic lepsiho jsem nikdy nenasel.
18.12.2007 12:45 shshsh
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
A tohle je vysledny regex.
Zdenek.Z avatar 18.12.2007 14:14 Zdenek.Z | skóre: 14
Rozbalit Rozbalit vše Re: Jak rozpoznat odkaz na webovou stránku v textu?
Tomu říkám pořádný regexp! :-)

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.