Welkom, Gast. Je bent niet ingelogd.

php Ubb werkt bijna, maar nog foutje.

Thomaz
'
Geplaatst op: 30 Jan 2007, 21:25
PimpCoins: 0
💸+
Bewerken Quote

Hallo allemaal,

Me ubb werkt dan bijna, maar nog een klein foutje. Die volgens mij met ervaring zo opgelost kan worden.

Ik heb nu dit script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

function php_highlight($input) 
{ 
    $output = "<br><table cellspacing=0 cellpadding=0 border=0 width=100%> 
               <tr><td width=40><td class=Tekst>Code</td></tr> 
               <tr><td height=1><td bgcolor=808080 height=1></tr> 
               <tr><td><td align=left valign=top>"; 
    ob_start(); 
    highlight_string($input); 
    $output .= ob_get_contents(); 
    ob_end_clean(); 
    $output .= "</tr> 
                <tr><td height=1><td bgcolor=808080 height=1></tr> 
                </table><p>"; 
    return $output; 
}     

function ubb($string) 
    { 
    // code blocken
    $string = nl2br($string);
    
    $string = preg_replace("#\[b\](.*?)\[/b\]#is", "<b>\${1}</b>", $string); 
    $string = preg_replace("#\[u\](.*?)\[/u\]#is", "<u>\${1}</u>", $string); 
    $string = preg_replace("#\[i\](.*?)\[/i\]#is", "<em>\${1}</em>", $string); 
    $string = preg_replace("#\[s\](.*?)\[/s\]#is", "<s>\${1}</s>", $string); 
    // [url]
    $string = eregi_replace("\[url\]www.([^\[]*)","<a href="http://www.\\1" target=_blank>\\1", $string); 
    $string = eregi_replace("\[url\]([^\[]*)","<a href="\\1" target=_blank>\\1", $string); 
    $string = eregi_replace("(\[url=)([A-Za-z0-9_~&=;\?:%@#./\-]+[A-Za-z0-9/])(\])", "<a href="http://\\2" target=_blank>", $string); 
    $string = eregi_replace("\[url](http://(.*))", "<a href="\\1" target="_blank">\\1", $string); 
    $string = eregi_replace("(\[/url\])", "</a>", $string); 
    $string = eregi_replace("http://http://", "http://", $string);  
    // [/url]
    $string = preg_replace("#\[color=(.*?)\](.*?)\[/color\]#si","<font color="\\1">\\2</font>", $string);
    $string = preg_replace("#\[align=(.*?)\](.*?)\[/align\]#si","<div align="\\1">\\2</div>", $string);
    $string = preg_replace("#\[size=(.*?)\](.*?)\[/size\]#si","<font size="\\1">\\2</font>", $string);
    $string = preg_replace("#\[img\](.*?)\[/img\]#si","<img src="\\1" border="0" OnLoad="if (this.width > 400) { this.width = 400; }">", $string);
    $string = eregi_replace("http://http://", "http://", $string); 
    
    $string = preg_replace("#\[code\](.*?)\[/code\]#si", php_highlight('\\1'), $string);
    
    return $string; 
    } 
?>

Alleen als je het tussen code tags zet, geeft die wel gewoon het hele script. Alleen dan zonder die kleurtjes derin. Maar wel dat de urls werken enz. Maar dat moet niet.

Wat kan ik hier aan doen. Ik had al iets geprobeert door het te base64 coderen. Maar daar kwam ik niet meer uit.

Wie kan mij ff helpen?

Bvd.

Thomas

iisys
Hmhm, indeed. whtvr.
moderator
Geplaatst op: 30 Jan 2007, 21:35
PimpCoins: 0
💸+
Bewerken Quote

Als je het wilt doen zoals jij het zegt, via base64, kan het zo volgens mij wel (haal de 2 *** weg van line 5):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
function ubb($string)  
    {  
    // code blocken 
    $string = preg_replace("#\[code\](.*?)\[/code\]#si", '[***code]'.base64_encode('\\1').'[***/code]', $string); 

    $string = nl2br($string); 
     
    $string = preg_replace("#\[b\](.*?)\[/b\]#is", "<b>\${1}</b>", $string);  
    $string = preg_replace("#\[u\](.*?)\[/u\]#is", "<u>\${1}</u>", $string);  
    $string = preg_replace("#\[i\](.*?)\[/i\]#is", "<em>\${1}</em>", $string);  
    $string = preg_replace("#\[s\](.*?)\[/s\]#is", "<s>\${1}</s>", $string);  
    // [url] 
    $string = eregi_replace("\[url\]www.([^\[]*)","<a href="http://www.\\1" target=_blank>\\1", $string);  
    $string = eregi_replace("\[url\]([^\[]*)","<a href="\\1" target=_blank>\\1", $string);  
    $string = eregi_replace("(\[url=)([A-Za-z0-9_~&=;\?:%@#./\-]+[A-Za-z0-9/])(\])", "<a href="http://\\2" target=_blank>", $string);  
    $string = eregi_replace("\[url](http://(.*))", "<a href="\\1" target="_blank">\\1", $string);  
    $string = eregi_replace("(\[/url\])", "</a>", $string);  
    $string = eregi_replace("http://http://", "http://", $string);   
    // [/url] 
    $string = preg_replace("#\[color=(.*?)\](.*?)\[/color\]#si","<font color="\\1">\\2</font>", $string); 
    $string = preg_replace("#\[align=(.*?)\](.*?)\[/align\]#si","<div align="\\1">\\2</div>", $string); 
    $string = preg_replace("#\[size=(.*?)\](.*?)\[/size\]#si","<font size="\\1">\\2</font>", $string); 
    $string = preg_replace("#\[img\](.*?)\[/img\]#si","<img src="\\1" border="0" OnLoad="if (this.width > 400) { this.width = 400; }">", $string); 
    $string = eregi_replace("http://http://", "http://", $string);  
     
    $string = preg_replace("#\[code\](.*?)\[/code\]#si", php_highlight(base64_decode('\\1')), $string); 
     
    return $string;  
    } 
?>

Geen idee of het zou werken. Heb niet zo veel verstand van ubb parsers en preg_replace's

Thomaz
'
Geplaatst op: 30 Jan 2007, 21:46
PimpCoins: 0
💸+
Bewerken Quote

Het werkt niet echt nee, hij geeft nu helemaal niks meer..

iisys
Hmhm, indeed. whtvr.
moderator
Geplaatst op: 30 Jan 2007, 21:55
PimpCoins: 0
💸+
Bewerken Quote

Thomaz schreef:

Het werkt niet echt nee, hij geeft nu helemaal niks meer..


Nvm my post then

Lennard
?
Geplaatst op: 30 Jan 2007, 22:09
PimpCoins: 0
💸+
Bewerken Quote

Dat komt omdat je sterretjes nog van regel 5 moet verwijderen; als je dat nog niet had gedaan.

Thomaz
'
Geplaatst op: 30 Jan 2007, 22:31
PimpCoins: 0
💸+
Bewerken Quote

Ik heb ze allemaal verwijderd, hij showd de tabel van de code wel. Maar de code zelf die erin zou moeten staan niet.

Lennard
?
Geplaatst op: 31 Jan 2007, 07:25
PimpCoins: 0
💸+
Bewerken Quote

en zo?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php 

function php_highlight($input)  
{  
    $output = "<br><table cellspacing=0 cellpadding=0 border=0 width=100%>  
               <tr><td width=40><td class=Tekst>Code</td></tr>  
               <tr><td height=1><td bgcolor=808080 height=1></tr>  
               <tr><td><td align=left valign=top>";  
    ob_start();  
    highlight_string($input);  
    $output .= ob_get_contents();  
    ob_end_clean();  
    $output .= "</tr>  
                <tr><td height=1><td bgcolor=808080 height=1></tr>  
                </table><p>";  
    return $output;  
}      

function ubb($string)  
    {  
    // code blocken 
    
    $string = preg_replace("#\[code\](.*?)\[/code\]#si", '[base64code]'.base64_encode('\\1').'[/base64code]', $string); 
        
    $string = nl2br($string); 
     
    $string = preg_replace("#\[b\](.*?)\[/b\]#is", "<b>\${1}</b>", $string);  
    $string = preg_replace("#\[u\](.*?)\[/u\]#is", "<u>\${1}</u>", $string);  
    $string = preg_replace("#\[i\](.*?)\[/i\]#is", "<em>\${1}</em>", $string);  
    $string = preg_replace("#\[s\](.*?)\[/s\]#is", "<s>\${1}</s>", $string);  
    // [url] 
    $string = eregi_replace("\[url\]www.([^\[]*)","<a href="http://www.\\1" target=_blank>\\1", $string);  
    $string = eregi_replace("\[url\]([^\[]*)","<a href="\\1" target=_blank>\\1", $string);  
    $string = eregi_replace("(\[url=)([A-Za-z0-9_~&=;\?:%@#./\-]+[A-Za-z0-9/])(\])", "<a href="http://\\2" target=_blank>", $string);  
    $string = eregi_replace("\[url](http://(.*))", "<a href="\\1" target="_blank">\\1", $string);  
    $string = eregi_replace("(\[/url\])", "</a>", $string);  
    $string = eregi_replace("http://http://", "http://", $string);   
    // [/url] 
    $string = preg_replace("#\[color=(.*?)\](.*?)\[/color\]#si","<font color="\\1">\\2</font>", $string); 
    $string = preg_replace("#\[align=(.*?)\](.*?)\[/align\]#si","<div align="\\1">\\2</div>", $string); 
    $string = preg_replace("#\[size=(.*?)\](.*?)\[/size\]#si","<font size="\\1">\\2</font>", $string); 
    $string = preg_replace("#\[img\](.*?)\[/img\]#si","<img src="\\1" border="0" OnLoad="if (this.width > 400) { this.width = 400; }">", $string); 
    $string = eregi_replace("http://http://", "http://", $string);  
     
    $string = preg_replace("#\[base64code\](.*?)\[/base64code\]#si", php_highlight('\\1'), $string); 
     
    return $string;  
    }  
?>

Waarom doe je btw dat gekloot met ob_start() enzo?

BlackWhizz
Je moeder
Geplaatst op: 31 Jan 2007, 07:36
PimpCoins: 0
💸+
Bewerken Quote

dan worden die codes opgeslagen in de cache van de server.

Thomaz
'
Geplaatst op: 31 Jan 2007, 14:26
PimpCoins: 0
💸+
Bewerken Quote

Dan krijg ik dit:

Code

XDE=

Lennard
?
Geplaatst op: 31 Jan 2007, 15:04
PimpCoins: 0
💸+
Bewerken Quote

Thomaz schreef:

Dan krijg ik dit:

Code

XDE=


Owja; want base64_encode('\\1') = XDE=

Probeer hem zo eens?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php  

function php_highlight($input)   
{   
    $output = "<br><table cellspacing=0 cellpadding=0 border=0 width=100%>   
               <tr><td width=40><td class=Tekst>Code</td></tr>   
               <tr><td height=1><td bgcolor=808080 height=1></tr>   
               <tr><td><td align=left valign=top>";   
    $output .= highlight_string(base64_decode($input[1]), TRUE);
    $output .= "</tr>   
                <tr><td height=1><td bgcolor=808080 height=1></tr>   
                </table><p>";   
    return $output;   
}       

function encodeer($string)
{
    
    return '[base64]'.base64_encode($string[1]).'[/base64]';

}

function ubb($string)   
    {   
    // code blocken  
     
    $string = preg_replace_callback("#\[code\](.*?)\[/code\]#si", "encodeer", $string);  
         
    $string = nl2br($string);  
      
    $string = preg_replace("#\[b\](.*?)\[/b\]#is", "<b>\${1}</b>", $string);   
    $string = preg_replace("#\[u\](.*?)\[/u\]#is", "<u>\${1}</u>", $string);   
    $string = preg_replace("#\[i\](.*?)\[/i\]#is", "<em>\${1}</em>", $string);   
    $string = preg_replace("#\[s\](.*?)\[/s\]#is", "<s>\${1}</s>", $string);   
    // [url]  
    $string = eregi_replace("\[url\]www.([^\[]*)","<a href="http://www.\\1" target=_blank>\\1", $string);   
    $string = eregi_replace("\[url\]([^\[]*)","<a href="\\1" target=_blank>\\1", $string);   
    $string = eregi_replace("(\[url=)([A-Za-z0-9_~&=;\?:%@#./\-]+[A-Za-z0-9/])(\])", "<a href="http://\\2" target=_blank>", $string);   
    $string = eregi_replace("\[url](http://(.*))", "<a href="\\1" target="_blank">\\1", $string);   
    $string = eregi_replace("(\[/url\])", "</a>", $string);   
    $string = eregi_replace("http://http://", "http://", $string);    
    // [/url]  
    $string = preg_replace("#\[color=(.*?)\](.*?)\[/color\]#si","<font color="\\1">\\2</font>", $string);  
    $string = preg_replace("#\[align=(.*?)\](.*?)\[/align\]#si","<div align="\\1">\\2</div>", $string);  
    $string = preg_replace("#\[size=(.*?)\](.*?)\[/size\]#si","<font size="\\1">\\2</font>", $string);  
    $string = preg_replace("#\[img\](.*?)\[/img\]#si","<img src="\\1" border="0" OnLoad="if (this.width > 400) { this.width = 400; }">", $string);  
    $string = eregi_replace("http://http://", "http://", $string);   
      
    $string = preg_replace_callback("#\[base64\](.*?)\[/base64\]#si", 'php_highlight', $string);  
      
    return $string;   
    }

Thomaz
'
Geplaatst op: 31 Jan 2007, 16:04
PimpCoins: 0
💸+
Bewerken Quote

Hij gooit er een automatische htmlspecialchars over heen, waardooor je nu zo ziet van &gt en dat soort zooi. Hoe los je dat op?

HIJ WERKT

[Laatst bewerkt door Thomaz op woensdag 31 januari 2007, om 16:25]
Lennard
?
Geplaatst op: 31 Jan 2007, 16:48
PimpCoins: 0
💸+
Bewerken Quote

Thomaz schreef:

Hij gooit er een automatische htmlspecialchars over heen, waardooor je nu zo ziet van &gt en dat soort zooi. Hoe los je dat op?

HIJ WERKT


mooi

Thomaz
'
Geplaatst op: 31 Jan 2007, 19:08
PimpCoins: 0
💸+
Bewerken Quote

Weet jij ook een manier om er regel nummers in te krijgen?

📫

Nieuw privébericht

🔥

Registreren


Login