Avatar billede Chak Nybegynder
09. november 2005 - 12:20 Der er 7 kommentarer og
1 løsning

Laver selv om til Link

Hej

Hvordan gør jeg sådan at hvis folk fx. skriver www.google.dk eller http://googl.dk osv. hvordan gør jeg så at den selv laver det om til et link.

nogen som kan komme med eksempel.

på forhånd tak
Avatar billede yojegergangsta Nybegynder
09. november 2005 - 12:22 #1
Kig på http://dk2.php.net/preg_replace men så må man ikke skrive . eller , efter for den ved jo ikke hvornår den skal stoppe
Avatar billede jakobdo Ekspert
09. november 2005 - 12:23 #2
Jeg bruger denne funktion:

function text_url($str, $target, $css_class)
{
    $ins_str = "";
    if ($css_class)
        $ins_str .= " class=\"".$css_class."\"";
    if ($target)
        $ins_str .= " target=\"".$target."\"";
   
    $str = preg_replace_callback ("/(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\%\^\{\}]+)/i", create_function('$matches','if( strlen($matches[2]) > 25 ) $name = substr($matches[2],0,25) . ".."; else $name = $matches[2]; return "<a".$ins_str." href=\"{$matches[1]}://{$matches[2]}\">$name</a>";'),$str);
    $str = preg_replace_callback ("/(\s|tp\:|\(|\[|\&gt;)(www\.)([a-z0-9~#&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\%\^\{\}]+)/i",                    create_function('$matches','if( strlen($matches[3]) > 25 ) $name = substr($matches[3],0,25) . ".."; else $name = $matches[3]; return "<a".$ins_str." href=\"http://$matches[2]$matches[3]\">$name</a>";'), $str);
    $str = preg_replace_callback ("/(\s|tp\:|\(|\[|\&gt;)(ftp\.)([a-z0-9~#&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\%\^\{\}]+)/i",                    create_function('$matches','if( strlen($matches[3]) > 25 ) $name = substr($matches[3],0,25) . ".."; else $name = $matches[3]; return "<a".$ins_str." href=\"ftp://$matches[2]$matches[3]\">$name</a>";'), $str);

  return $str;
}
Avatar billede Chak Nybegynder
09. november 2005 - 12:31 #3
nogen som kan sætte det ind i den kode her. det er lidt nemmere for mig at se.

<?php
include('mysql.php');
$query = mysql_query("SELECT * FROM forum") or die(mysql_error());
while ($forum = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '';
echo "$[overskrift]";
echo '<br>';
echo "$[tekst]";
}
?>

det var bare lige jeg hurtig lavede
Avatar billede jakobdo Ekspert
09. november 2005 - 12:44 #4
while ($forum = mysql_fetch_assoc($query))
{
    if ($i++ != 0)
        echo '';
    echo $forum['overskrift'];
    echo "<br>";
    echo  text_url($forum['tekst'],"_blank");
}

og ret så lige text_url til:

function text_url($str, $target="", $css_class="")
Avatar billede Chak Nybegynder
09. november 2005 - 14:45 #5
hmm det virker ikke jakobdo. eller jo det gør det nok men kan ikke lige se hvad du mener så
Avatar billede jakobdo Ekspert
09. november 2005 - 15:28 #6
<?php

function text_url($str, $target=NULL, $css_class=NULL)
{
    $ins_str = "";
    if ($css_class)
        $ins_str .= " class=\"".$css_class."\"";
    if ($target)
        $ins_str .= " target=\"".$target."\"";
 
    $str = preg_replace_callback ("/(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\%\^\{\}]+)/i", create_function('$matches','if( strlen($matches[2]) > 25 ) $name = substr($matches[2],0,25) . ".."; else $name = $matches[2]; return "<a".$ins_str." href=\"{$matches[1]}://{$matches[2]}\">$name</a>";'),$str);
    $str = preg_replace_callback ("/(\s|tp\:|\(|\[|\&gt;)(www\.)([a-z0-9~#&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\%\^\{\}]+)/i",                    create_function('$matches','if( strlen($matches[3]) > 25 ) $name = substr($matches[3],0,25) . ".."; else $name = $matches[3]; return "<a".$ins_str." href=\"http://$matches[2]$matches[3]\">$name</a>";'), $str);
    $str = preg_replace_callback ("/(\s|tp\:|\(|\[|\&gt;)(ftp\.)([a-z0-9~#&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\%\^\{\}]+)/i",                    create_function('$matches','if( strlen($matches[3]) > 25 ) $name = substr($matches[3],0,25) . ".."; else $name = $matches[3]; return "<a".$ins_str." href=\"ftp://$matches[2]$matches[3]\">$name</a>";'), $str);

  return $str;
}

$mysql['host'] = 'localhost'; // Host til database
$mysql['username'] = 'root'; // Brugernavn til database
$mysql['password'] = ''; // Kodeord til database
$mysql['database'] = 'nytest'; // Database

mysql_connect($mysql['host'],$mysql['username'],$mysql['password']);
mysql_select_db($mysql['database']);

$query = mysql_query("SELECT * FROM forum") or die(mysql_error());
while ($forum = mysql_fetch_assoc($query))
{
    if ($i++ != 0)
        echo '';
    echo $forum['overskrift'];
    echo "<br>";
    echo text_url($forum['tekst'],"_blank");
}

?>
Avatar billede jakobdo Ekspert
09. november 2005 - 16:11 #7
takker for point!
Avatar billede Chak Nybegynder
09. november 2005 - 21:01 #8
så lidt
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