Autor Zpráva
Jules
Profil
Mám vytvořenou diskuzi v MySQL a chtěl bych při zobrazování, když tam bude třeba http://www.seznam.cz aby se to změnilo na odkaz. Jak na to?
Jan Tvrdík
Profil
echo '<a href="' . $zaznam["adresa"] . '">' . $zaznam["adresa"] . '</a>';
Onecar
Profil
Jan Tvrdík
Nene, on potřebuje zajistit to, aby se http://seznam.cz/ změnil na http://seznam.cz/. Takže potřebuje vyhledat v řetězci (textovém poli) řetězec, který začíná na http:// a končí na /. Toto už jen dá do výpisu, jako máte vy.
Jules
Profil
Přesně tak, to co je tady v této diskuzi, když napíšu http://www.totonenivubeczadnaadresaaletonevadi.eu/haha tak se to změní na odkaz. Možná mě napadl způsob, ale není vůbec elegantní, chtěl bych vědět jak se to dělá. děkuju
djlj
Profil
Jules
Následující fci mám z téhle diskuze (kdysi ji sem někdo někdy psal) a funguje zcela bezchybně:

function odkazy($text){

$slovo = split("[[:blank:]]+", $text);

for ($y = 0; $y < count($slovo); $y++)
{
if (eregi("^(www\..+\..{2,4}/?.*)", $slovo[$y])) //jedna se odkaz typu [url=http://www...
]www...
[/url]


{
$odkaz = eregi_replace("^(www\..+\..{2,4}/?.*)",
"<a href=\"http://\\1\" onclick=\"return!window.open(this.href);\">\\1</a> ", $slovo[$y]);
} elseif (eregi("^([fh]{1}[t]{1,2}[p]?[s]?://.+\..{2,4}/?.*)", $slovo[$y])) //jedna se odkaz typu http://...,ftp://... nebo https://...
{
$odkaz = eregi_replace("^([fh]{1}[t]{1,2}[p]?[s]?://.+\..{2,4}/?.*)",
"<a href=\"\\1\" onclick=\"return!window.open(this.href);\">\\1</a> ", $slovo[$y]);
} elseif (eregi("^(mailto:.+@.+\..{2,4})", $slovo[$y]))
{
$odkaz = eregi_replace("^(mailto:(.+@.+\..{2,4}))",
"<a href=\"\\1\" onclick=\"return!window.open(this.href);\">\\2</a> ", $slovo[$y]);
}else
{
$odkaz = $slovo[$y] . " "; //jedna se o normalni slovo
}
$zprava .= $odkaz; //spojime vsechny slova opet dohromady
}
return $zprava;
}
Jules
Profil
Díky já nad ní budu teď chvilu přemejšlet jak funguje, ale dík moc si mi pomohl...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0