Комбиниране на две php фукнции

d_badboy

Registered
UP на темата
Понеже имам същия проблем реших да обновя тази тема.
Кажете решение ако имате такова :)
Код:
$string="[code]<?php\n echo\n \"qweasdzxc\";\n ?>
";
echo preg_replace("/\[code\](.+?)\[\/code\]/s",highlight_string(stripslashes("$1"),true),$string);[/code]
Не се появява изобщо нищо в brouser-а, но в source се вижда следното:
Код:
<code><span style="color: #000000">
<?php
echo "qweasdzxc";
?></span>
</code>
 
Така значи стигнах до това положение:
текст
Код:
asdasd
[tb]<?php
echo "asdas";
?>[/tb]
asdasd
zxcz
[tb]<?php
echo "qweqw";
?>[/tb]
cxzczx
код
Код:
$string = htmlspecialchars($string);
$string = stripslashes($string);
$string = str_replace(array("\r\n", "\n", "\r"),"<br />",$string);
$string = preg_replace("/\[tb\](.*?)\[\/tb\]/m",highlight_string(htmlspecialchars_decode("\\1"),true),$string);
echo $string;
сорс на browser
Код:
asdasd<br /><code><span style="color: #000000">
<?php<br />echo "asdas";<br />?></span>
</code><br />asdasd<br />qwe<br />sadasd<br />zxcz<br /><code><span style="color: #000000">

<?php<br />echo "qweqw";<br />?></span>
</code><br />cxzczx
Но кода в текста не се оцветява а си е черен. Помогнете ако може :evil:
 
Еми в сорса си показва, че е черен. А в тоя код дето си дал никъде не виждам от къде се задава цвета?
 
Честно и аз не разбрах защо не се получава...
Но ето доста по-опростен вариант, който също работи:
<?php
$string = 'asdasd
[tb]<?php
echo "asdas";
?>[/tb]
asdasd
zxcz
[tb]<?php
echo "qweqw";
?>[/tb]
cxzczx';
$string = str_replace(array("[tb]","[/tb]"), "", $string);
highlight_string($string);
?>

:)
 
Ето до какав извод стигнах и се получи оцветен код :D
Ако има по лесен или по добър начин пишете :evil:
Код:
$string = stripslashes($string);
$string = str_replace(array("\r\n","\n","\r"),"<br />",$string);
preg_match_all("/\[tb(.*?)\](.*?)\[\/tb\]/m",$string,$out);
for ($i=0;$i<count($out);$i++) {
	$string = str_replace($out[0][$i],"<div class=\"code\">".((!empty($out[1][$i]))?"<p>".substr($out[1][$i],1)."</p>":"").highlight_string(str_replace("<br />","\n",$out[2][$i]),true)."</div>",$string);
}
echo $string;
FestarBG твоя вариант мисля че ще оцвети целия текст само дето ще премахне bbcode таговете :)
 

Back
Горе