Avatar billede snie97 Nybegynder
19. februar 2004 - 12:44 Der er 8 kommentarer og
2 løsninger

[url][/url] funktioner

Hej...

I kender sikkert de funktioner der laver [bold]tekst[/bold] om til <b>tekst</b>...

Men kan jeg ikke få en til at lave sådanne funktioner som disse:

linktekst -> <a href="http://noget.dk" target="_blank">linktekst</a>
[gbi]20040219124230[/gbi] -> <a href="side.php?id=20040219124230">se indlæg</a>
Avatar billede hobbez Nybegynder
19. februar 2004 - 12:57 #1
Syntax'en i fx. Snitz er:

Klik [url="http://www.eksperten.dk"]her[/url] for at besøge Eksperten.

Jeg er ikke sikker på Target.

/Rob
Avatar billede schaefner Juniormester
19. februar 2004 - 12:59 #2
<?php
$string = 'Hej kig på Jesper Sørensen eller [gbi]20040219124230[/gbi] Eksperten [gbi]20040219124235[/gbi]';
$string = preg_replace("/\[gbi\]([0-9]+)\[\/gbi\]/i","<a href=\"side.php?id\\1\">Se indlæg</a>",$string);
$string = preg_replace("/\[url=([^]]+)\]([^[]+)\[\/url\]/i","<a href=\"\\1\">\\2</a>",$string);

echo $string;
?>
Avatar billede schaefner Juniormester
19. februar 2004 - 13:01 #3
$string = preg_replace("/\[gbi\](.+?)\[\/gbi\]/i","<a href=\"side.php?id=\\1\">Se indlæg</a>",$string);
$string = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/i","<a href=\"\\1\">\\2</a>",$string);

mvh. Jesper Sørensen
Avatar billede limemedia Nybegynder
19. februar 2004 - 13:05 #4
Følgende er aftestet
$test = preg_replace("/\[url=([^\]]+)\]([^\[]+)\[\/url\]/i","<a href=\"\\1\" target=\"_blank\">\\2</a>",$test);
$test = preg_replace("/\[gbi\]([^\[]+)\[\/gbi\]/i","<a href=\"side.php?id=\\1\">se indlæg</a>",$test);

Og et opstillet test scenarie
<?php
    /*
        Konverteringer
        linktekst -> <a href="http://noget.dk" target="_blank">linktekst</a>
        [gbi]20040219124230[/gbi] -> <a href="side.php?id=20040219124230">se indlæg</a>
    */

    $test = 'abc linktekst def [gbi]20040219124230[/gbi] ghi';
   
    echo "Original:<br>";
    echo $test."<br>";
   
   
    $test = preg_replace("/\[url=([^\]]+)\]([^\[]+)\[\/url\]/i","<a href=\"\\1\" target=\"_blank\">\\2</a>",$test);
    $test = preg_replace("/\[gbi\]([^\[]+)\[\/gbi\]/i","<a href=\"side.php?id=\\1\">se indlæg</a>",$test);
   
    echo "<br>Ny:<br>";
    echo $test."<br>";
?>
Avatar billede schaefner Juniormester
19. februar 2004 - 13:10 #5
<?php
function parseText($str) {
    $str = preg_replace("/\[gbi\](.+?)\[\/gbi\]/i","<a href=\"side.php?id=\\1\">Se indlæg</a>",$str);
    $str = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/i","<a href=\"\\1\" target=\"_blank\">\\2</a>",$str);
    return $str;
}

$text = 'Tag et kig på schaefner.dk eller Eksperten. Du kan også kigge på dette indlæg: [gbi]20040219124230[/gbi]';
echo parseText($text); // Kunne f.eks. være en tekst fra database.
?>
Avatar billede hobbez Nybegynder
19. februar 2004 - 13:13 #6
Jeg kan godt se, at jeg er på HELT forkert spor.

Kan jeg trække mit svar tilbage? :o)

/Rob
Avatar billede saudoo Nybegynder
19. februar 2004 - 15:57 #7
mener du kan bruge en kommando der hedder "case"

jeg kan ikke huske præcis, men den skulle gerne ligne noget som dette:

case = [link]; echo = <a href=";close;
case = [/link]; echo = "></a>;close;


Den er sikkert fejlfuldt, for jeg kan slet ikke huske den 100% :D
Avatar billede saudoo Nybegynder
19. februar 2004 - 15:57 #8
case = [link]; echo = <a href=;close;
case = [/link]; echo = ></a>;close;


Så lige uden "
Avatar billede Slettet bruger
19. februar 2004 - 23:44 #9
saudoo-> Du er vist ude af et vildspor. For det første kan jeg ikke komme på en metode, hvor det ville være relevant at bruge case her. For det andet er din syntax meget forkert. Her er et eksempel på rigtig brug af case fra http://dk.php.net/manual/en/control-structures.switch.php

switch ($i) {
case 0:
  echo "i equals 0";
  break;
case 1:
  echo "i equals 1";
  break;
case 2:
  echo "i equals 2";
  break;
}


schaefners og lars-jensens forslag (de gør cirka det samme) ser mere rigtigt ud.
Avatar billede saudoo Nybegynder
20. februar 2004 - 09:01 #10
Ja tak, jeg sagde jo jeg SLET ikke kunne huske den. Og det var også mere ment som en vejleder.. :D
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