Beiträge: 564
Themen: 49
Registriert seit: 15.08.2008
MyBB-Version: 1.4.x
PHP-Code: $array = explode("code",$row3->message); $code = $array[1]; $code = highlight_string("$code"); $message = $array[0]."".$code."".$array[2];
gibt nur fehler
Freundliche Grüsse
Marti95.
Die deutsche Rechtschreibung ist Freeware, dass heißt Du darfst sie kostenlos benutzen.
Sie ist allerdings nicht Open Source, dass heißt Du darfst sie weder verändern, noch in veränderter Form veröffentlichen.
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
08.08.2009, 19:29
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2009, 19:45 von querschlaeger.)
PHP-Code: $message='Ich bin ein Text mit einem Codeblock: [phpcode]<?php phpinfo(); ?>[/phpcode]!<br /><br />'; preg_match_all('#\[phpcode\](.*)\[/phpcode\]#Usi',$message,$matches); foreach(array_unique($matches[1]) as $code){ $message=str_replace('[phpcode]'.$code.'[/phpcode]','<div style="border:1px solid #f00;max-height:200px;overflow:scroll;width:600px;">'.highlight_string($code).'</div>',$message); }
Achtung ungetestet! Hab ich jetzt mal so direkt hier reingeschrieben.
P.S.: Willst du das "PHP Profi" wirklich da stehen lassen?
Beiträge: 564
Themen: 49
Registriert seit: 15.08.2008
MyBB-Version: 1.4.x
lol, vor 5 min bin ich auch auf so was gekommen xD
PHP-Code: $message = $row3->message; $message = preg_replace('#\[code\](.*)\[/code\]#isU', highlight_string("$1"), $message); return $message;
aber geht ned gibt $1 aus xD
zu deinem, es gibt in dem code block nur eine 1 aus, und anders ist die auch ned xD
Freundliche Grüsse
Marti95.
Die deutsche Rechtschreibung ist Freeware, dass heißt Du darfst sie kostenlos benutzen.
Sie ist allerdings nicht Open Source, dass heißt Du darfst sie weder verändern, noch in veränderter Form veröffentlichen.
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
Kannst du nochmal meinen überarbeiteten Code testen? Habe den Text editiert.
Beiträge: 564
Themen: 49
Registriert seit: 15.08.2008
MyBB-Version: 1.4.x
wird ebenfals eine 1 angezeigt
Freundliche Grüsse
Marti95.
Die deutsche Rechtschreibung ist Freeware, dass heißt Du darfst sie kostenlos benutzen.
Sie ist allerdings nicht Open Source, dass heißt Du darfst sie weder verändern, noch in veränderter Form veröffentlichen.
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
08.08.2009, 20:02
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2009, 20:13 von querschlaeger.)
Ah, ich verstehe. highlight_string() liefert das Ergebnis gleich aus (return). Versuche mal den zusätzlichen Parameter false. Wenn das nicht hilft, musst du dir deine eigene Highlight-Methode schreiben. Oder schau doch mal, wie es MyBB bei [ php ] macht.
Oder verwende dies:
PHP-Code: <?php
function printCode($source_code) {
if (is_array($source_code)) return false; $source_code = explode("\n", str_replace(array("\r\n", "\r"), "\n", $source_code)); $line_count = 1;
foreach ($source_code as $code_line) { $formatted_code .= '<tr><td>'.$line_count.'</td>'; $line_count++; if (ereg('<\?(php)?[^[:graph:]]', $code_line)) $formatted_code .= '<td>'. str_replace(array('<code>', '</code>'), '', highlight_string($code_line, true)).'</td></tr>'; else $formatted_code .= '<td>'.ereg_replace('(<\?php )+', '', str_replace(array('<code>', '</code>'), '', highlight_string('<?php '.$code_line, true))).'</td></tr>'; }
return '<table style="font: 1em Consolas, \'andale mono\', \'monotype.com\', \'lucida console\', monospace;">'.$formatted_code.'</table>'; }
$message='Ich bin ein Text mit einem Codeblock:<br />[phpcode]<?php phpinfo(); ?>[/phpcode]<br /><br />Und nun noch ein laengerer Codeblock:<br /><br />[phpcode]<?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?>[/phpcode]'; preg_match_all('#\[phpcode\](.*)\[/phpcode\]#Usi',$message,$matches); foreach(array_unique($matches[1]) as $code){ $message=str_replace('[phpcode]'.$code.'[/phpcode]','<div style="border:1px solid #f00;max-height:200px;overflow:scroll;width:600px;">'.printCode($code).'</div>',$message); } echo $message;
P.S.: Die Funktion printCode() habe ich von php.net... Ein "Profi" weiß, wo er nachschauen kann...
Beiträge: 564
Themen: 49
Registriert seit: 15.08.2008
MyBB-Version: 1.4.x
PHP-Code: 1 | Marti95. | 01.01.1970 - 01:00 Ich bin ein Text mit einem Codeblock: 1 <?php phpinfo(); ?>
Und nun noch ein laengerer Codeblock:
1 <?php phpinfo(); ?> 2 <?php phpinfo(); ?> 3 <?php phpinfo(); ?> 4 <?php phpinfo(); ?> 5 <?php phpinfo(); ?> 6 <?php phpinfo(); ?> 7 <?php phpinfo(); ?> 8 <?php phpinfo(); ?> 9 <?php phpinfo(); ?> 10 <?php phpinfo(); ?> 11 <?php phpinfo(); ?> 12 <?php phpinfo(); ?>
Fatal error: Cannot redeclare printcode() (previously declared in D:\xampp\htdocs\bg\w1\user.php:390) in D:\xampp\htdocs\bg\w1\user.php on line 390
so wird es angezeigt, es sollte 4 ausgaben geben.
Die Codes werden in den Boxen angezeigt!
Freundliche Grüsse
Marti95.
Die deutsche Rechtschreibung ist Freeware, dass heißt Du darfst sie kostenlos benutzen.
Sie ist allerdings nicht Open Source, dass heißt Du darfst sie weder verändern, noch in veränderter Form veröffentlichen.
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
Schau mal hier: http://www.php-fehlermeldungen.de/topic58.html
Ich habe meinen Code aus #16 jetzt einfach mal in einer Datei abgespeichert und es funktioniert so wie es soll: http://demo.wundi.net/code.php
Wo ist das Problem?
Beiträge: 564
Themen: 49
Registriert seit: 15.08.2008
MyBB-Version: 1.4.x
09.08.2009, 09:07
(Dieser Beitrag wurde zuletzt bearbeitet: 09.08.2009, 09:14 von Marti95..)
war mein fehler xD
habe die funktion nichzt zuoberst gehabt...
Jetzt geht es, Danke
//EDIT:
Nun hat es ja auf der Seite so zahlen
1
2
3
4
wie mache ich, das diese nicht mitkopiert werden?
Freundliche Grüsse
Marti95.
Die deutsche Rechtschreibung ist Freeware, dass heißt Du darfst sie kostenlos benutzen.
Sie ist allerdings nicht Open Source, dass heißt Du darfst sie weder verändern, noch in veränderter Form veröffentlichen.
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
gar nicht, außer du ersetzt die Tabellen durch eine Liste.
Übrigens funktioniert es auch so:
PHP-Code: <style type="text/css"> .code{ border:1px solid #888; width:600px; } .codeheader{ background-color:#ccc; padding:5px; font-style:italic; } .codecontent{ max-height:150px; overflow:auto; background-color:#eee; padding:5px; } </style>
<?php
$message='Ich bin ein Text mit einem Codeblock: [phpcode]<?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?> <?php phpinfo(); ?>[/phpcode]<br/>Und noch eine weitere Zeile<br/>';
preg_match_all('#\[phpcode\](.*)\[/phpcode\]#Usi',$message,$matches); foreach(array_unique($matches[1]) as $code){ $message=str_replace('[phpcode]'.$code.'[/phpcode]','<div class="code"><div class="codeheader">PHP-Code</div><div class="codecontent">'.highlight_string($code,true).'</div></div>',$message); }
echo $message;
?>
Das Ergebnis siehst du hier: http://demo.wundi.net/code.php
|