Avatar billede dugi Nybegynder
17. december 2004 - 15:04 Der er 3 kommentarer og
2 løsninger

replace catch halløjsa? :o

Hej Eksperter.

Så er jeg sgu tilbage igen med et problem :'(
Jeg er ved at lave en funktion med en hel masse str_replace funktioner osv.

Også tænkte jeg på hvordan man laver en replace funktion der gør følgende:

[qoute="nkz"]Dette er en qoute[/qoute].

Overstående tekst skal replaces så den blir således:

<table blabla>
  <tr>
    <td>Original qoute af nkz:<br>Dette er en qoute</td>
  </tr>
</table>

Har engang fundet sådan en "catcher" (ved ikke helt hva man kalder sådan en) som opfangede et link på samme måde:

[URL="http://www.eksperten.dk"]Eksperten.dk[/URL]

også lavede den det til:

<a href="http://www.eksperten.dk">Eksperten.dk</a>


Håber virkelig der er nogen som kan hjælpe mig.
På forhånd mange tak.

...og glæde jul :)

Med venlig hilsen
Morten Rugaard
Avatar billede coderdk Praktikant
17. december 2004 - 17:22 #1
$text = "hej jeg tester [qoute="nkz"]Dette er en qoute[/qoute] hgehe!";

$repl = '<table blabla>
  <tr>
    <td>Original qoute af \\1:<br>\\2</td>
  </tr>
</table>';

echo preg_replace( "/\[quote=\"(.*?)\"\](.*?)\[\/quote\]/si", $repl, $text );
Avatar billede dugi Nybegynder
17. december 2004 - 22:16 #2
coderdk, tusind tak - jeg tester det med det samme i morgen tidlig.
Men du skulle vel ikke have en guide, til det der preg_replace?
- Vil så gerne lærer det.

Lige meget om det er på dansk eller engelsk, men nu helst dansk :D
- Tusind tak for et hurtigt svar :)
Avatar billede iss Novice
17. december 2004 - 22:51 #3
Jeg har lavet denne funktion jeg normalt bruger:
function mybbcode($string){
    $string = nl2br(htmlspecialchars($string));
    $patterns = array(
        '`\[center\](.+?)\[/center\]`is',
        '`\[b\](.+?)\[/b\]`is',
        '`\[i\](.+?)\[/i\]`is',
        '`\[u\](.+?)\[/u\]`is',
        '`\[strike\](.+?)\[/strike\]`is',
        '`\[color=#([0-9a-f]{6})\](.+?)\[/color\]`is',
        '`\[email\](.+?)\[/email\]`is',
        '`\[email=(.+?)\](.+?)\[/email\]`is',
        '`\[img\](.+?)\[/img\]`is',
        '`\[url=([a-z0-9]+://)([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\](.*?)\[/url\]`si',
        '`\[url\]([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\[/url\]`si',
        '`\[url\]((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\[/url\]`si',
        '`\[quote=(.+?)\](.+?)\[/quote\]`is',
        '`\[quote\](.+?)\[/quote\]`is',
        '`\[indent](.+?)\[/indent\]`is',
        '`\[size=([1-6]+)\](.+?)\[/size\]`is'
    );
    $replaces =  array(
        '<div align="center">\\1</div>',
        '<strong>\\1</strong>',
        '<em>\\1</em>',
        '<span style="border-bottom: 1px dotted">\\1</span>',
        '<strike>\\1</strike>',
        '<span style="color:#\1;">\2</span>',
        '<a href="mailto:\1">\1</a>',
        '<a href="mailto:\1">\2</a>',
        '<img src="\1" alt="" style="border:0px;" />',
        '<a href="\1\2" target="_blank">\6</a>',
        '<a href="\1\2" target="_blank">\1\2</a>',
        '<a href="http://\1" target="_blank">\1</a>',
        '<strong>\1:</strong><div style="margin:0px 10px;padding:5px;background-color:#F7F7F7;border:1px dotted #CCCCCC;width:80%;"><em>\2</em></div>',
        '<strong>Citat:</strong><div style="margin:0px 10px;padding:5px;background-color:#F7F7F7;border:1px dotted #CCCCCC;width:80%;"><em>\1</em></div>',
        '<pre>\\1</pre>',
        '<h\1>\2</h\1>'
    );
    $string = preg_replace($patterns, $replaces , $string);
    return $string;
}
Avatar billede coderdk Praktikant
18. december 2004 - 02:47 #4
Jeg kender desværre ikke rigtigt nogle tutorials, jeg har bare læst lidt på php.net og fundet lidt på nettet når jeg havde problemer - Man skal vist bare prøve sig frem, og hvis der er noget der er lidt svært, kan man sikkert finde noget på nettet ;)

http://www.webcafe.dk/artikler/perl/regulaereudtryk/
http://google.dk/search?q=php+regular+expressions+tutorial
Avatar billede iss Novice
18. december 2004 - 02:55 #5
Jeg bruger for det meste http://www.regular-expressions.info/ der er altid de guldkorn man skal bruge.
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