Avatar billede wuppie Nybegynder
02. december 2005 - 21:56 Der er 9 kommentarer

replace script, men omvendt

X Hejsa..
Jeg vil godt have lavet denne kode her omvendt, men det virker ikke når jeg prøver selv. Altså den skal replace <strong> med og </strong> med osv.
Kode:
<?php
function dobbcode($string){

$string = nl2br(htmlspecialchars($string));

$patterns = array(

                                    '`\[b\](.+?)\[/b\]`is',
                                    '`\[code\](.+?)\[/code\]`is',
                                    '`\[i\](.+?)\[/i\]`is',
                                    '`\[u\](.+?)\[/u\]`is',
                                    '`\[strike\](.+?)\[/strike\]`is',
                                    '`\[color=#([0-9]{6})\](.+?)\[/color\]`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',
                                    '`\[flash=([0-9]+),([0-9]+)\](.+?)\[/flash\]`is',
                                    '`\[quote\](.+?)\[/quote\]`is',
                                    '`\[indent](.+?)\[/indent\]`is',
                                    '`\[size=([1-6]+)\](.+?)\[/size\]`is'
                               

                                );

$replaces =  array(

                                    '<strong>\\1</strong>',
                                    '<table width="100%" border="1" bordercolor="black" bgcolor="#f7f7f7" style="BORDER-COLLAPSE: collapse"><tr><td align="left"><code>\\1</code></td></tr></table>', 
                                    '<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>',
                                    '<img src="\1" alt="" style="border:0px;" />',
                                    '<a href="\1\2">\6</a>',
                                    '<a href="\1\2">\1\2</a>',
                                    '<a href="http://\1">\1</a>',
                                    '<object width="\1" height="\2"><param name="movie" value="\3" /><embed src="\3" width="\1" height="\2"></embed></object>',
                                    '<strong>Quote:</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 egeriis Nybegynder
02. december 2005 - 22:09 #1
Må jeg spørge til hvorfor du vil gøre det omvendte, af ren nysgerrighed, imens jeg laver det om?
Avatar billede wuppie Nybegynder
02. december 2005 - 22:12 #2
For at jeg har en profil system, som skal lave html'en om til dobbcoden, når man redigere ens profil..
Avatar billede egeriis Nybegynder
02. december 2005 - 22:20 #3
Jeg håber det dur:

<?php
function dobbcode($string){

$string = nl2br(htmlspecialchars($string));

$replaces = array(

                                    '\1',
                                    '[code]\1[/code]',
                                    '\1',
                                    '\1',
                                    '[strike]\1[/strike]',
                                    '[color=#\1]\2[/color]',
                                    '\1',
                                    '\1',
                                    '\6`si',
                                    '[url]\1\2[/url]`si',
                                    '[url]\1[/url]`si',
                                    '[flash=\1,\2]\3[/flash]',
                                    '[quote]\1[/quote]',
                                    '[indent]\\1[/indent]',
                                    '[size=\1]\2[/size]'


                                );

$patterns =  array(

                                    '`<strong>(.+?)</strong>`is',
                                    '`<table width="100%" border="1" bordercolor="black" bgcolor="#f7f7f7" style="BORDER-COLLAPSE: collapse"><tr><td align="left"><code>(.+?)</code></td></tr></table>`is',
                                    '`<em>(.+?)</em>`is',
                                    '`<span style="border-bottom: 1px dotted">(.+?)</span>`is',
                                    '`<strike>(.+?)</strike>`is',
                                    '`<span style="color:#([0-9]{6});">(.+?)</span>`is',
                                    '`<a href="mailto:(.+?)">(.+?)</a>`is',
                                    '`<img src="(.+?)" alt="" style="border:0px;" />`is',
                                    '`<a href="([a-z0-9]+://)([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)">(.+?)</a>`si',
                                    '`<a href="([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)">([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)</a>`si',
                                    '`<a href="http://((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)">((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)</a>`si',
                                    '`<object width="([0-9]+)" height="([0-9]+)"><param name="movie" value="(.+?)" /><embed src="(.+?)" width="([0-9]+)" height="([0-9]+)"></embed></object>`is',
                                    '`<strong>Quote:</strong><div style="margin:0px 10px;padding:5px;background-color:#F7F7F7;border:1px dotted #CCCCCC;width:80%;"><em>(.+?)</em></div>`is',
                                    '`<pre>(.+?)</pre>`is',
                                    '`<h([1-6]+)>(.+?)</h([1-6]+)>`is'



                                    );


$string = preg_replace($patterns, $replaces , $string);

return $string;
}
?>
Avatar billede egeriis Nybegynder
02. december 2005 - 22:21 #4
Du gemmer vel ikke html-koden i databasen? Det ville jeg ikke gøre, jeg ville i stedet køre koden igennem når man skal vise profilen, og så erstatte dobbcode med html.
Avatar billede xvid Seniormester
02. december 2005 - 22:21 #5
nogen der kan hjælpe mig ? http://www.eksperten.dk/spm/669247
Avatar billede egeriis Nybegynder
02. december 2005 - 22:22 #6
xvid: Det har intet med dette spørgsmål at gøre.
Avatar billede wuppie Nybegynder
03. december 2005 - 20:48 #7
det virker ikke... :(.. den er bare blank, den tekst der køres igennem..
Avatar billede egeriis Nybegynder
04. december 2005 - 12:38 #8
Øv, håbede jeg. Jeg har ikke nok forstand på regular expressions. Men som sagt ville det ikke være nødvendigt hvis du gemte dobbcoden i databasen i stedet for html-koden :)
Avatar billede wuppie Nybegynder
08. december 2005 - 15:34 #9
ok... men så skal jeg jo bruge dit script alligevel
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