Práca s textom v php

Programovacie jazyky, rady, poradňa...
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Práca s textom v php

Príspevok od používateľa geoge046 »

Cafte,
mam stranku, kde si v administraci pridavam clanky a pod.
A ked pridam text a dam do neho link v podobe www.stranka.sk alebo http://stranka.sk tak chcem aby mi to ihned v poli hodilo do odkazu.

Ďakujem :)

Hlavná myšlienka:
- nájdi v texte reťazec "http://" alebo www
- pokiaľ tam tento reťazec je, tak opakuj:
-- nájdi koniec odkazu (medzera alebo koniec príspevku)
-- ulož odkaz (napr. WWW.ODKAZ.COM) do premennej a vymaž ho z textu príspevku
-- pridaj tam znaky "<a href="www.ODKAZ.COM">www.ODKAZ.COM</a>"
-- vlož na miesto pôvodného odkazu, ktorý sme predtým vymazali

len to neviem takto zbuchať :(
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

noo, tak asi ti neico ten text prispevku prechadza.. alebo nie??
ak ano, tak tam pridaj podmienku, ze ak je to nejaky z potrebych foriem adresy, tak ti ju vlozi do <a> a ak nie, tak to prejdi po slovach a kontroluj...
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

no podla mna sa to bude musiet urobit tak, ze pri upload dát sa skontroluje či sa v retazci (pomocou php a preg_match) nachádza http:// alebo www a ostatne som uz hore napisal v tej myslienke, len hovorim neviem to zbuchat :(
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

pouzi tinyMCE
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

nieco taketo?

Kód: Vybrať všetko

function link2html(&$clanok)
{
  if( preg_match_all('/((http\:\/\/www|http\:\/\/|www)([^\ ]+))/',$clanok, $match ) )
  {
    $pocet = count($match[0]);
    for( $i=0; $i < $pocet; $i++ )
    {
      $link = '<a href="'.$match[1][$i].'">'.$match[3][$i].'</a>';
      str_replace( $match[0][$i], $link, $clanok );
    }
  }
}
pouzitie:

Kód: Vybrať všetko

...
$clanok = $_POST['clanok'];
link2html($clanok);
echo $clanok;
...
POZOR!! neskusal som funkcnost, ale nezvyknem sa mylit.

good luck.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Kód: Vybrať všetko

function text2link($text)
{
	$ret = " " . $text;
	// nahradime http://adresa
	$ret = preg_replace("#(^|[\n ])(http:\/\/)([^\s]*)#i", "\\1<a href=\"\\2\\3\">\\3</a>", $ret);
	// nahradime www.adresa
	$ret = preg_replace("#(^|[\n ])(www\.[^\s]*)#i", "\\1<a href=\"http://\\2\">\\2</a>", $ret);

	$ret = substr($ret, 1);
	return $ret;
}
Napísať odpoveď