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://?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
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?
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
07. april 2002 - 11:04
#5
du udskifter $str med $ole i macho's script...
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.
07. april 2002 - 11:06
#7
ljweb > hvilke urls er det fx?
07. april 2002 - 11:08
#9
jeps, den er to links... http:// har prioritet over www
07. april 2002 - 11:10
#10
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
07. april 2002 - 11:14
#12
Godt! (ellers var den jo også ubrugelig :))
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 :))
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 :-)
07. april 2002 - 11:19
#15
Hmm - jeg har lidt svært ved at få dit script til at virke LJWEB
07. april 2002 - 11:23
#16
Jeg skal jo bare udskifte $str med $en_anden_vaiabel ikke?
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.....
07. april 2002 - 11:25
#18
20 minutter :)
07. april 2002 - 11:41
#19
Din vejledning til trods, får jeg stadig fejlmeddelelser. Så må jeg lære det :)
07. april 2002 - 11:47
#20
> machomann virker din ved tilfredsstillende mange links?
07. april 2002 - 11:47
#21
prøv at vise noget kode :)) så kan vi måske hjælpe dig herinde
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;
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]);
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?
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
07. april 2002 - 12:06
#26
Og teksten er maltrakteret
07. april 2002 - 12:07
#27
redeclare ? har du en funktion der hedder tagster_format selv ? eller evt includet to gange ?
07. april 2002 - 12:09
#28
nopes
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]";
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>
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
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("<", "<", $str); $str = str_replace(">", ">", $str); $str = str_replace("&", "&", $str); ud, men jeg kan ikke garantere for hvad det forsager.
07. april 2002 - 12:24
#33
koden var anderledes i scriptet, det er admin herinde der ikke har lagt seneste patch på !?!
07. april 2002 - 12:28
#34
Eneste prob er at den viser det her nu: <br>
07. april 2002 - 12:31
#35
Altså det her: "<br>"
07. april 2002 - 12:31
#36
ah - fuck, den formateres her i forum..
07. april 2002 - 12:31
#37
&_l_t_;_b_r_&_g_t_; uden alle _
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.
07. april 2002 - 12:36
#39
Perfekt! Mange tak for hjælpen!!
07. april 2002 - 12:36
#40
Du burde jo egentlig have alle pointene og en kage :-)
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?
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]);
07. april 2002 - 12:45
#44
eller skal der bare stå: mailto:olav@olav.dk før at email funktionen virker?
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!!
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 :)
07. april 2002 - 12:52
#47
%20 er koden for et space ...
07. april 2002 - 12:54
#49
Jeps, det ved jeg, men hvorfor smider den det ind i linket???
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
07. april 2002 - 13:00
#51
Jeg har lavet en lille besked i dit forum :-)
07. april 2002 - 13:01
#52
2 faktisk ...
07. april 2002 - 13:59
#53
thx... har dog deaktiveret no 2, hvis ikke det gør noget *g*
13. april 2002 - 20:18
#54
Ljweb jeg har testet dit script i nogle dage og kan sige at det ikke virker 100 % ...
13. april 2002 - 20:22
#56
Kan man få den samme løsning til ASP - VBscript?
13. april 2002 - 20:26
#57
Fx vil den ikke omdanne flg:
<br>
www.kitesurferen.dk :P
til et rigtigt link??!
13. april 2002 - 20:31
#58
Hvilket jo heller ikke går her på eksperten kan jeg se!!
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"
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
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>
Vi tilbyder markedets bedste kurser inden for webudvikling