Avatar billede only-boy Nybegynder
02. februar 2005 - 22:56 Der er 6 kommentarer og
1 løsning

Aktivering af link?

Hejsa,

på min side skriver jeg ofte nyheder via min database. Her indskriver jeg også ofte webadresser ind i teksten. Men disse fungere ikke som links, når det bliver hevet ud af databasen.

Ved det kan lade sig gøre, men har nogen mulighed for at brøkke koden sammen og give mig den, så www og http:// kan blive aktiveret i nyheden så snart den indlæses på siden?
Avatar billede alister_crowley Nybegynder
02. februar 2005 - 23:11 #1
Example 3. Replace URLs with links
<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                    "<a href=\"\\0\">\\0</a>", $text);
?>

Det er ligesom her på ekspereten hvor www.google.com bliver til et link :D
Avatar billede alister_crowley Nybegynder
02. februar 2005 - 23:13 #2
eller

<?
function LinkedText($text)
{
  // Denne her medtaget også www
  $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>",
          ereg_replace("www[^<>[:space:]]+[[:alnum:]/]", "http://\\0",
          str_replace("http://www", "www", $text)));
  return $text;
}
?>

Den forrige var kun til http://
Avatar billede only-boy Nybegynder
02. februar 2005 - 23:26 #3
Måske du kan hjælpe mig, synes ikke helt jeg får det til at fungere:


<?php
include('inc.config.php');
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);

function LinkedText($text)
{
  $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>",
          ereg_replace("www[^<>[:space:]]+[[:alnum:]/]", "http://\\0",
          str_replace("http://www", "www", $text)));
  return $text;
}

echo '<h2>'.$row['title'].'</h2>';
echo '<p><b>'.$row['synopsis'].'</b></p>';
echo empty($row['image']) ? '' : '<p align="center"><img src="files/'.$row['image'].'" class="image">';
echo '</p>';
echo nl2br($row['text']);
echo '<br><br><p>Skrevet af '.$row['author'].', '.$row['date'].'</p>';
echo '<div class="hr"></div>';


$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM comments WHERE parent=".$_GET['id']." ORDER BY id ASC");
if (mysql_num_rows($query) > 0) {
    echo '<a name="Kommentarer"></a><h2>Kommentarer</h2>';
    while ($row = mysql_fetch_assoc($query)) {
        echo empty($row['email']) ? htmlspecialchars($row['name']) : '<a href="mailto:'.$row['email'].'">'.htmlspecialchars($row['name']).'</a>';
        echo '&nbsp;('.$row['date'].')<br><br>';
        echo nl2br(htmlspecialchars($row['text']));
        echo '<div class="hr"></div>';
    }
}
?>
Avatar billede alister_crowley Nybegynder
03. februar 2005 - 09:16 #4
1.

echo LinkedText(nl2br($row['text']));

2.

echo LinkedText(nl2br(htmlspecialchars($row['text'])));
Avatar billede only-boy Nybegynder
03. februar 2005 - 19:22 #5
Tusind tak, det hjalp. Hvis du smider ét svar, så smider jeg lidt point efter dig tilgengæld :-)

I den kode, hvordan får man den til at åbne link i nyt vindu ?
Avatar billede alister_crowley Nybegynder
04. februar 2005 - 00:25 #6
retter lidt i funktionen :)

<?
function LinkedText($text)
{
  // Denne her medtaget også www
  $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a target=\"new\" href=\"\\0\">\\0</a>",
          ereg_replace("www[^<>[:space:]]+[[:alnum:]/]", "http://\\0",
          str_replace("http://www", "www", $text)));
  return $text;
}
?>

Har bare ikke target i mine egne, da det ikke er valid xhtml :)
Og pointene kan du beholde, jeg samler ikke på points.
Avatar billede only-boy Nybegynder
23. marts 2005 - 19:10 #7
-> Lukker.....
  -> god påske :-)
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