Avatar billede interkriller Nybegynder
24. januar 2004 - 09:59 Der er 6 kommentarer og
1 løsning

Automatisk oprettede links eller mailto:

Jeg har en gæstebog hvor folk kan skrive i, men ville meget gerne have, når du skrev et link f.eks www.dr.dk, at det så (som her) automatisk blev et link.

Samme problem hvis man skriver sin mail...

Sitet er lavet i php/mysql
Avatar billede ztyxx Nybegynder
24. januar 2004 - 10:03 #1
ljwebs tagster er nok den bedste af slagsen til det
http://www.ljweb.biz/usefulscripts/
Avatar billede krydset Nybegynder
24. januar 2004 - 10:05 #2
$string = "Her er en hjemmeside www.pc-dk.dk og her er en mail mail@pc-dk.dk";

function url2link ($str) {
  $str = preg_replace("/((ht|f)tp:\/\/)[\w.-]+(?(?=\/)[^\s<>]+)/i", "<a href=\"\\0\" target='_blank'>\\0</a>", $str);
  $str = preg_replace("/(?<!http:\/\/)(www\.)[\w.-]+(?(?=\/)[^\s<>]+)/i", "<a href=\"http://\\0\" target='_blank'>\\0</a>", $str);
  return $str;
}

function email2link ($str) {
  return preg_replace("/[\w.-]+@[\w-]+\.[\w.-]+/i", "<a href=\"mailto:\\0\">\\0</a>", $str);
}

echo email2link(url2link($string));
Avatar billede interkriller Nybegynder
24. januar 2004 - 10:16 #3
krydset:
Jeg har ikke lige testet din løsning endnu, men lige nu hedder min funktion
echo nl2br($row->tekst);

Hvordan får jeg min nl2br til at virke sammen med email2link

echo email2link(url2link(nl2br($string)));

Sådan???
Avatar billede interkriller Nybegynder
24. januar 2004 - 10:22 #4
Jeg har smidt din kode ind krydset, den virker fint.....én gang og så ikke mere
får fejlmeldingen:

Fatal error: Cannot redeclare url2link() (previously declared in /customers/krildesign.dk/krildesign.dk/httpd.www/guest.php:72) in /customers/krildesign.dk/krildesign.dk/httpd.www/guest.php on line 72

Her er koden

<?
$query = "SELECT navn, email, tekst, date_format(dato, '%e/%m %Y - %H:%i') AS fdate FROM gindlaeg ORDER BY dato DESC";
$result = mysql_query($query);
while ($row = mysql_fetch_object($result))
{
?>
<tr align="left">
<td width="20%" bgcolor="#000000">
<div class="txt">
<br>
<?
echo $row->navn;
?>
</div>
</td>
<td width="40%" bgcolor="#000000">
<div class="txt">
<?
echo $row->email;
?>
</div>
</td>
<td width="40%" bgcolor="#000000">
<div class="txt">
<?
echo $row->fdate;
?>
</div>
</td>
</tr>
  <tr bgcolor="#666666">
    <td  colspan="3"> <br>
<div class="txt">
<?
$string = $row->tekst;

function url2link ($str) {
  $str = preg_replace("/((ht|f)tp:\/\/)[\w.-]+(?(?=\/)[^\s<>]+)/i", "<a href=\"\\0\" target='_blank'>\\0</a>", $str);
  $str = preg_replace("/(?<!http:\/\/)(www\.)[\w.-]+(?(?=\/)[^\s<>]+)/i", "<a href=\"http://\\0\" target='_blank'>\\0</a>", $str);
  return $str;
}

function email2link ($str) {
  return preg_replace("/[\w.-]+@[\w-]+\.[\w.-]+/i", "<a href=\"mailto:\\0\">\\0</a>", $str);
}

echo email2link(url2link($string));
?>
      </div>
</td>
</tr>
<?
}
?>

www.krildesign.dk hvis det hjælper (gæstebog)
Avatar billede interkriller Nybegynder
24. januar 2004 - 10:25 #5
bare glem det, har fixet det "function declare" skulle bare uden for while løkken...
Tak for det krydset, smid et svar.

også tak til ztyxx, men krydset's svar var lige lidt nemmere at gå til
Avatar billede krydset Nybegynder
24. januar 2004 - 10:30 #6
hehe ok, kunne sq ikk elige finde fejlen men ved det til en anden gang ;-)

Smider et svar og velbekomme
Avatar billede ztyxx Nybegynder
24. januar 2004 - 10:36 #7
helt okay :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester