[code] probleem...
timo - 17/04/2006 15:52
PHP ver gevorderde
ik wil (laatste functie die ik nu kan bedenke die k nog niet heb) dus een code functie erbij maken in me ubb class... maar als ik deze wil highlighten (dmv. highlight_string()) word de tekst meteen geechoot...
hier me code:
function codeparse($input)
{
return preg_replace("!\[code\].*?\[\/code\]!si",'<div style="background-color: #cccccc;">'.highlight_string(stripslashes('\\1')).'</div>',$input);
//return $this->input;
}
function codeparse( $input )
{
//return $this->input;
}
ik krijg nu een div met de background #cccccc waar die hoort met een 1 erin, en bovenaan staat er een 1... als ik stripslashes weglaat komt er een warning over een \:s
11 antwoorden
Gesponsorde links
Richard - 17/04/2006 16:11
Crew algemeen
PHP.net: highlight_string :
mixed highlight_string ( string str [, bool return] )
zet de 2e parameter op true, en het komt goed.
Thomas - 17/04/2006 16:12
Moderator
highlight_string heeft een 2e parameter die aangeeft of het resultaat als string gertourneerd moet worden, of dat er meteen iets afgedrukt moet worden...
timo - 17/04/2006 17:23
PHP ver gevorderde
nu dit:
<?
highlight_string(stripslashes("\\1"),TRUE).
?>
output= een te grote div met background #cccccc met een 1 erin, laat ik stripslashes weg is dit de error:
Citaat:
Warning: Unexpected character in input: '' (ASCII=92) state=1 in C:apachefriendsxampphtdocscmsincludesubb_class.inc.php on line 15
kokx - 17/04/2006 17:24
Onbekend
Als je de 2e parameter op true zet, wordt er ook nl2br over de string gedaan.
timo - 17/04/2006 17:26 (laatste wijziging 17/04/2006 17:26)
PHP ver gevorderde
@kokx... dat is niet waar.. (werkt in ieder gvl niet bij mij...)
Simon - 17/04/2006 17:33
PHP expert
'.highlight_string(stripslashes(.'\\1'.),true).'
'.highlight_string(stripslashes(.' \\1 '.),true).'
zo?
timo - 17/04/2006 17:39
PHP ver gevorderde
Citaat:
Parse error: parse error, expecting `')'' in C:apachefriendsxampphtdocscmsincludesubb_class.inc.php on line 15
kokx - 17/04/2006 17:43 (laatste wijziging 17/04/2006 17:43)
Onbekend
Zo?
<?php
function codeparse($input)
{
return preg_replace("!\[code\].*?\[\/code\]!si","<div style=\"background-color: #cccccc;\">highlight_string(stripslashes('\\1'))</div>",$input);
//return $this->input;
}
?>
<?php
function codeparse( $input )
{
return preg_replace ( "!\[code\].*?\[\/code\]!si" , "<div style=\" background-color: #cccccc;\" >highlight_string(stripslashes('\\1 '))</div>" , $input ) ; //return $this->input;
}
?>
timo - 17/04/2006 17:44
PHP ver gevorderde
output: highlight_string(stripslashes(''))
kokx - 17/04/2006 17:46 (laatste wijziging 17/04/2006 17:53)
Onbekend
Maak eens een nieuwe functie die de highlight_string en de div bij elkaar doet. En dan de functie zo:
Edit: Ik denk dat het zo moet werken:
<?php
function codeparse($input)
{
return preg_replace("!\[code\](.*?)\[\/code\]!esi","<div style=\"background-color: #cccccc;\">highlight_string(stripslashes('\\1'), true)</div>",$input);
//return $this->input;
}
?>
<?php
function codeparse( $input )
{
return preg_replace ( "!\[code\](.*?)\[\/code\]!esi" , "<div style=\" background-color: #cccccc;\" >highlight_string(stripslashes('\\1 '), true)</div>" , $input ) ; //return $this->input;
}
?>
timo - 17/04/2006 18:06
PHP ver gevorderde
opgelost dankzij kokx via msn, (het was een class voor wie dat nog niet wist:p) en hier het eindresultaat wat werkte:
<?
function codeparse($input)
{
return preg_replace("!\[code\](.*?)\[\/code\]!esi",
"\$this->parse_code_extra('\\1')",$input);
}
function parse_code_extra($code)
{
return "<div style=\"background-color: #cccccc; font-size: 12px;\">". highlight_string(stripslashes($code), true) ."</div>";
}
?>
<?
function codeparse( $input )
{
"\$ this->parse_code_extra('\\1 ')" , $input ) ;
}
function parse_code_extra( $code )
{
}
?>
Gesponsorde links
Dit onderwerp is gesloten .