Avatar billede udvikler Nybegynder
30. september 2005 - 12:23 Der er 15 kommentarer og
1 løsning

ereg_replace - automatisk link

Ser ud til at jeg skal bruge noget hjælp her :)

Har leget lidt med ereg_replace, men kan ikke helt sætte mig ind i det endnu. Jeg vil gerne have lavet en funktion der indsætter autonmatisk link i mit forum. Altså, bare man skriver www.sidenavn.dk så kommer det som et link og ikke normal tekst.
Har også kigget på php.net for at forstå ereg_replace lidt mere, men det virker bare så kompliceret.

På forhånd tak!
Avatar billede jensgram Nybegynder
30. september 2005 - 12:35 #1
Avatar billede udvikler Nybegynder
30. september 2005 - 12:39 #2
Tusinde tak, og koden er til om med enkel :)
- men hvor skal jeg indsætte den kode han skriver ?

- index.php ?
- laes.php ?
- opret.php ?
Avatar billede udvikler Nybegynder
30. september 2005 - 12:40 #3
Har lige prøvet at indsætte den i laes.php - det virkede ikke ? :S
Avatar billede Slettet bruger
30. september 2005 - 12:43 #4
Du kunne for eksempel lave en functions.php fil, som du inkluderer i alle dine sider.

Så kan du køre den med url2link($variabel_med_strengen);

--
pacroon
Avatar billede udvikler Nybegynder
30. september 2005 - 12:52 #5
Har lige prøvet, det virkede ikke:

----------------------------
funktion.php

<?php
function url2link($str) {
  return eregi_replace("((f|ht)tps?://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,}",
                      "<a href=\"\\0\">\\0</a>", $str);
}
?>

----------------------------

noget af laes.php

<?php
include "mysql.php";
include "funktion.php";
if(isset($_POST['submit'])) {
$besked = url2link($_POST['besked']);
$besked = nl2br(htmlentities(addslashes($_POST['besked'])));
$parent = $_GET['id'];

----------------------------
Avatar billede udvikler Nybegynder
30. september 2005 - 14:00 #6
Ingen der kan hjælpe ? :)
Avatar billede Slettet bruger
30. september 2005 - 14:09 #7
Indeholder linket "http://" i starten?
Avatar billede udvikler Nybegynder
30. september 2005 - 14:15 #8
ja, det gør det: kig selv i denne tråd i mit forum: http://www.fora.frac.dk/laes.php?id=41

- forresten ved jeg godt designet på mit forum er grimt, men det er klart, for det er nemlig intet desing - det laver jeg senere ;)
Avatar billede udvikler Nybegynder
30. september 2005 - 14:15 #9
- men det burde jo virke bare man satte www foran og ikke kun http
Avatar billede Slettet bruger
30. september 2005 - 14:24 #10
Jeg tror nogle af dine andre funktioner forstyrrer den.

Prøv at fjerne de andre, og se om det virker:

<?php
include "mysql.php";
include "funktion.php";
if(isset($_POST['submit'])) {
$besked = url2link($_POST['besked']);
// $besked = nl2br(htmlentities(addslashes($_POST['besked'])));
$parent = $_GET['id'];

--
pacroon
Avatar billede udvikler Nybegynder
30. september 2005 - 14:29 #11
Du havde fuldtændig ret, nogle af de andre funktioner forstyrrede den, men hvordan for jeg det til at virke nu ? - og det virker kun hvis man sætter http:// foran - hvordan gør man så det bare virker med www.bla.dk
Avatar billede Slettet bruger
30. september 2005 - 14:34 #12
Godt spørsgmål, men tilsyneladende kan eksperten det! :)

Jeg kan huske den gamle exp-admin engang postede det et sted.. måske kan vi finde det.
Avatar billede showsource Seniormester
30. september 2005 - 15:10 #13
der var engang på ljweb.com/usefulscripts et script, tagster_lib.php, men kan sgutte finde det længere!
En ældre version:

function lj_web_link($var) {
$var = " ".$var;
$var = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])((ftp|http|https|telnet|news|nttp|nntp|file):\/\/[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+(\\[|\\]|[a-z0-9~#%@\&:;,=\?\/_\+-])+)", "\\1<a href=\"\\2\" TARGET=\"_blank\">\\2</a>", $var);
$var = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])(www\.[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+[a-z0-9~#%@\&:;,=\?\/_\+-]+)", "\\1<a href=\"http://\\2\" TARGET=\"_blank\">\\2</a>", $var);

$var = eregi_replace("([_\.0-9a-z-]+@([0-9a-z-]+)+\.[a-z]{2,4})","<a href=\"mailto:\\1\">\\1</a>", $var);

return $var;

    }

$text ="Hej, nice side du har der! www.urlvaek.dk showsource@gmail.com";
echo lj_web_link($url);
Avatar billede udvikler Nybegynder
30. september 2005 - 15:19 #14
Hejsa

Jamen, det ser da... øhm kompliceret ud :)

Som jeg sagde lige før, forstår jeg ikke meget af ereg_replace funktionen, så kan jeg ikke lige få dig til at vise mig hvor jeg skal ændre, når mit felt der bliver udskrevet hedder $besked ?

- kan forresten også se at det virker meget mail adresser, det må du også gerne fjerne :)

PS. er ikke doven, forstår bare intet af funktionen - i må gerne forklare, så skal jeg nok gøre det selv når jeg forstår :)
Avatar billede udvikler Nybegynder
03. oktober 2005 - 16:26 #15
Tak, det virker nu.
Lægger dem der vil have point ikke lige et svar ?
Avatar billede Slettet bruger
03. oktober 2005 - 19:55 #16
Tak :)
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