Avatar billede lademan Novice
07. april 2002 - 10:52 Der er 60 kommentarer og
2 løsninger

Omdanne link til rigtigt link

Hvordan omdanner jeg et link til rigtigt link via ereg el lign, som tager højde for varianter af hhv. www og http://?
Avatar billede lauer Nybegynder
07. april 2002 - 11:00 #1
Jeg har lavet noget engang som virker .... tror jeg nok :)


$str = eregi_replace("(( |\n|\r)((f|ht)tp://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='\\1' target='_blank'>\\1</a>", $str); 
$str = eregi_replace("([ |\n|\r](www)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='http://\\1' target='_blank'>\\1</a>", $str); 

Et sted i $str skal der så stå et link... det behøver ikke at være det eneste der står i $str, hvis du forstår
Avatar billede limemedia Nybegynder
07. april 2002 - 11:00 #2
Du finder den tagster jeg har lavet - der bla. bliver anvendt her på eksperten her : http://www.ljweb.biz/?Ref=usefulscripts

/ Lars
Avatar billede lademan Novice
07. april 2002 - 11:02 #3
hehe - det ser jo lettere krytisk ud :)
hvis jeg nu har en variabel ($ole) som ovenstående skal undersøge for evt links - hvordan gør jeg det smartest?
Avatar billede jakoba Nybegynder
07. april 2002 - 11:03 #4
Det du beder om er meget tæt på at være umuligt.

Formatet for et link er:
  <scheme>://<net_loc>/<path>;<params>?<query>#<fragment>

hvor der så igen er regler for hvad <schene> kan være, hvad <net_loc> kan være, hvad <path> kan være, hvad <param> kan være, osv.

du kan få en næsten komplet beskrivese af formatet her: http://www.faqs.org/rfcs/rfc1808.html

der er simpelthen for mange varianter.

mvh JakobA
Avatar billede limemedia Nybegynder
07. april 2002 - 11:04 #5
du udskifter $str med $ole i macho's script...
Avatar billede limemedia Nybegynder
07. april 2002 - 11:05 #6
jakoba >> komplekst ja, og den perfekte løsning findes ikke. Synes dog at jeg i min er kommet et godt stykke - omend nogle url'er kan få den til at give morsomme resultater.
Avatar billede lademan Novice
07. april 2002 - 11:06 #7
ljweb > hvilke urls er det fx?
Avatar billede limemedia Nybegynder
07. april 2002 - 11:07 #8
lademan url's som www.eksempel.org?parameter=http://www.test.com burde give et uhensigtsmæssigt resultat
Avatar billede limemedia Nybegynder
07. april 2002 - 11:08 #9
jeps, den er to links... http:// har prioritet over www
Avatar billede lademan Novice
07. april 2002 - 11:10 #10
ahh

men
www.ole.dk?ole=23x
er okay?
Avatar billede limemedia Nybegynder
07. april 2002 - 11:11 #11
selvfølgelig... tagsteren har ca 1 år på bagen, er løbende udviklet og tilrettet efter links herinde. Det er ekstremer hvor den ikke virker ordentlig
Avatar billede lademan Novice
07. april 2002 - 11:14 #12
Godt!
(ellers var den jo også ubrugelig :))
Avatar billede limemedia Nybegynder
07. april 2002 - 11:16 #13
som skrevet før, det er min funktion der anvendes her på eksperten :)) så kig dig omkring og vælt dig i links :))
Avatar billede jakoba Nybegynder
07. april 2002 - 11:17 #14
ljweb's tagser er nok det tætteste du kan finde.
Medmindre du hyrer et software-firma til at arbejde på problemet i et par måneder :-)
Avatar billede lademan Novice
07. april 2002 - 11:19 #15
Hmm - jeg har lidt svært ved at få dit script til at virke LJWEB
Avatar billede lademan Novice
07. april 2002 - 11:23 #16
Jeg skal jo bare udskifte $str med $en_anden_vaiabel ikke?
Avatar billede limemedia Nybegynder
07. april 2002 - 11:23 #17
lademan >> et hurtigt eksempel kan jeg da give dig...

<?php
    # Vi inkluderer min fil - ingen grund til at fedte det ind på en side
    include('tagster_lib.php');

    # vi ønsker at lave links i variablen $str
    $str = tagster_format($str);

    # Og vi udskriver resultatet
    echo $str;
?>

Du skal downloade tagsteren og ligge det på din maskine. Der er parametre til target og css, det kan du læse i filen.


/ LJ

PS. Du gav op efter 5 min ? du kan knapt have nået at kigge på filen.....
Avatar billede lademan Novice
07. april 2002 - 11:25 #18
20 minutter :)
Avatar billede lademan Novice
07. april 2002 - 11:41 #19
Din vejledning til trods, får jeg stadig fejlmeddelelser.
Så må jeg lære det :)
Avatar billede lademan Novice
07. april 2002 - 11:47 #20
> machomann
virker din ved tilfredsstillende mange links?
Avatar billede limemedia Nybegynder
07. april 2002 - 11:47 #21
prøv at vise noget kode :)) så kan vi måske hjælpe dig herinde
Avatar billede lademan Novice
07. april 2002 - 11:54 #22
KODE

$row[indhold] er tekstindhold i et artikelsys
tagster vender op og ned på den resterende tekst

#######

include('tagster_lib.php');
$str = $row[indhold];
$str = tagster_format($str);
$row[indhold] = $str;
Avatar billede limemedia Nybegynder
07. april 2002 - 11:57 #23
vender op og ned ?? har du et eksempel ?

ps.
$str = $row[indhold];
$str = tagster_format($str);
$row[indhold] = $str;

er det samme som
$row[indhold] = tagster_format($row[indhold]);
Avatar billede lademan Novice
07. april 2002 - 12:03 #24
Det her burde være tilstrækkeligt:

include('tagster_lib.php');
$row[indhold] = tagster_format($row[indhold]);
print "$row[indhold]";
Hvorefter den gerne skulle spøtte en artikel ud - inkl evt links og emails

- Ikke?
Avatar billede lademan Novice
07. april 2002 - 12:04 #25
Hvorefter jeg får flg:

Fatal error: Cannot redeclare tagster_format() in /hotel/surfersinfo/WWW/forum/tagster_lib.php on line 26
Avatar billede lademan Novice
07. april 2002 - 12:06 #26
Og teksten er maltrakteret
Avatar billede limemedia Nybegynder
07. april 2002 - 12:07 #27
redeclare ? har du en funktion der hedder tagster_format selv ? eller evt includet to gange ?
Avatar billede lademan Novice
07. april 2002 - 12:09 #28
nopes
Avatar billede lademan Novice
07. april 2002 - 12:11 #29
Gør jeg da noget forkert nå jeg gør flg:

include('tagster_lib.php');
$row[indhold] = tagster_format($row[indhold]);
print "$row[indhold]";
Avatar billede limemedia Nybegynder
07. april 2002 - 12:19 #30
netop ikke. Jeg kører selv en demo gennem

<?php
    include('download/tagster_lib.php');

    $str = "n/a";
    if ($submit) {
        $str = tagster_format($tagster);
    }
?>
<body bgcolor="#FFFFFF" leftmargin="5" topmargin="5" marginwidth="5" marginheight="5">
<img src="gfx/popup_tagstertitle.gif" width="350" height="20" alt="" border="0"><br>
<form action="popup_tagster.php" method="post" name="tagsterform" id="tagsterform">
<table width="490" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10px; color: #363636;">Type in sample text here :</td>
</tr>

<tr>
<td><textarea cols="25" rows="10" name="tagster" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10px; width: 490px; color: #363636; border: 1px solid #cdcdcd;"><?php echo $tagster; ?></textarea><br><input type="submit" name="submit" id="submit" value="- test -" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10px; width: 100px; color: #363636;"></td>
</tr>

<tr>
<td style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10px; color: #363636;"><br>Result :</td>
</tr>

<tr>
<td style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10px; color: #363636;"><?php echo $str; ?></td>
</tr>
</table>
</form>
</body>
Avatar billede lademan Novice
07. april 2002 - 12:19 #31
Okay - nu har jeg fået fejlmeldingen væk - include var placeret i en løkke.
Nu er det eneste problem at den laver tegn som >< mfl om
Avatar billede limemedia Nybegynder
07. april 2002 - 12:24 #32
det den gør er at sikre at dit indhold kan vises ordentligt på skærmen. Formaterer koder osv korrekt.

Du kan i tagster_format funktionen kommentere
        $str = str_replace("<", "&lt;", $str);
        $str = str_replace(">", "&gt;", $str);
        $str = str_replace("&", "&amp;", $str);
ud, men jeg kan ikke garantere for hvad det forsager.
Avatar billede limemedia Nybegynder
07. april 2002 - 12:24 #33
koden var anderledes i scriptet, det er admin herinde der ikke har lagt seneste patch på !?!
Avatar billede lademan Novice
07. april 2002 - 12:28 #34
Eneste prob er at den viser det her nu:

&lt;br&gt;
Avatar billede lademan Novice
07. april 2002 - 12:31 #35
Altså det her:
"&lt;br&gt;"
Avatar billede lademan Novice
07. april 2002 - 12:31 #36
ah - fuck, den formateres her i forum..
Avatar billede lademan Novice
07. april 2002 - 12:31 #37
&_l_t_;_b_r_&_g_t_;

uden alle _
Avatar billede limemedia Nybegynder
07. april 2002 - 12:33 #38
det her forum kører samme kode - den har et problem med & tegn - har sendt en rettelse til Jakob - han holder vist weekend for én gangs skyld.

hvis du fjerner de ovenstående linier, skulle den være der.
Avatar billede lademan Novice
07. april 2002 - 12:36 #39
Perfekt!

Mange tak for hjælpen!!
Avatar billede lademan Novice
07. april 2002 - 12:36 #40
Du burde jo egentlig have alle pointene og en kage :-)
Avatar billede limemedia Nybegynder
07. april 2002 - 12:37 #41
skriv noget positivt her : www.ljweb.biz/?Ref=guestbook - så er jeg tilfreds :))
Avatar billede lademan Novice
07. april 2002 - 12:40 #42
Skal jeg kører:
$row[indhold] = tagster_format($row[indhold]);
igennem alle funktionerne før at fx email halløj virker?
Avatar billede lademan Novice
07. april 2002 - 12:43 #43
Dvs:

$row[indhold] = tagster_format($row[indhold]);
$row[indhold] = tagster_url($row[indhold]);
$row[indhold] = tagster_email($row[indhold]);
$row[indhold] = tagster_fix_endchar($row[indhold]);
$row[indhold] = tagster_expand($row[indhold]);
$row[indhold] = tagster_reduce($row[indhold]);
Avatar billede lademan Novice
07. april 2002 - 12:45 #44
eller skal der bare stå:
mailto:olav@olav.dk før at email funktionen virker?
Avatar billede tupsy Nybegynder
07. april 2002 - 12:45 #45
Hejsa gutter..
Jeg har også prøvet at sætte denn ekode ind :

$artikel[tekst] = eregi_replace("(( |\n|\r)((f|ht)tp://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='\\1' target='_blank'>\\1</a>", $artikel[tekst]);
$artikel[tekst] = eregi_replace("([ |\n|\r](www)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='http://\\1' target='_blank'>\\1</a>", $artikel[tekst]);

Men, nogen der kan forklare hvorfor den sætter et %20 mellem http:// og www i mit link???

Holder jeg musen over linket i min tekst skriver den det rigtigt nederst i browseren men klikker jeg på det åbner den en ny side hvor %20 er sat ind..
Hvorfor mon det???

Tupsy!!
Avatar billede limemedia Nybegynder
07. april 2002 - 12:46 #46
nej, kun tagster_format - den udfører det hele i korrekt rækkefølge... Det var blot for at splitte op, hver ting for sig så det er nemt at forstå, udvikle og anvende :)
Avatar billede limemedia Nybegynder
07. april 2002 - 12:52 #47
%20 er koden for et space ...
Avatar billede lademan Novice
07. april 2002 - 12:54 #48
>ljweb
Kan det passe at den ikke vil tage kun:
www.eksperten.dk
men gerne
http://www.eksperten.dk
Avatar billede tupsy Nybegynder
07. april 2002 - 12:54 #49
Jeps, det ved jeg, men hvorfor smider den det ind i linket???
Avatar billede limemedia Nybegynder
07. april 2002 - 12:55 #50
lademan >> den ændrer automatisk url's, emails, ftp, telnet og et par flere. Bare det er i teksten konverteres det automatisk
Avatar billede lademan Novice
07. april 2002 - 13:00 #51
Jeg har lavet en lille besked i dit forum :-)
Avatar billede lademan Novice
07. april 2002 - 13:01 #52
2 faktisk ...
Avatar billede limemedia Nybegynder
07. april 2002 - 13:59 #53
thx... har dog deaktiveret no 2, hvis ikke det gør noget *g*
Avatar billede lademan Novice
13. april 2002 - 20:18 #54
Ljweb jeg har testet dit script i nogle dage og kan sige at det ikke virker 100 % ...
Avatar billede lademan Novice
13. april 2002 - 20:18 #55
Scriptet har til tider svært ved kun at tage: www.dmi.dk
men derimod ikke: http://www.dmi.dk
Avatar billede killer_r Nybegynder
13. april 2002 - 20:22 #56
Kan man få den samme løsning til ASP - VBscript?
Avatar billede lademan Novice
13. april 2002 - 20:26 #57
Fx vil den ikke omdanne flg:

<br>www.kitesurferen.dk :P

til et rigtigt link??!
Avatar billede lademan Novice
13. april 2002 - 20:31 #58
Hvilket jo heller ikke går her på eksperten kan jeg se!!
Avatar billede lademan Novice
13. april 2002 - 20:36 #59
Løsningen på problemet er:

$row[indhold] = str_replace("<br>", "<br> ", $row[indhold]);

- som skal indsættes inden "tagster includeringen"
Avatar billede limemedia Nybegynder
14. april 2002 - 04:01 #60
problemet med det "hack" er, at koden før og efter ikke er identisk, det vil skabe problemer fx her på eksperten
Avatar billede thoeger_poertner Nybegynder
28. maj 2006 - 17:12 #61
Lj-web er tilsyneladende gået under jorden - hans domæner eksisterer ikke længere.

Har siddet og ledt efter tagsteren i 20 minutter - og det lykkedes mig at finde den på: http://web.archive.org/web/20031025003206/www.ljweb.biz/source_tagster.php

Bare hvis andre skulle have samme problem ;)
Avatar billede olebole Juniormester
05. april 2008 - 22:48 #62
<ole>

- men husk at skifte tegnsæt til iso-8859-1 i din browser, inden du kopierer koden. Ellers får du ikke den korrekte kode  ;o)

/mvh
</bole>
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