| 
		
	
	
	
		
	Beiträge: 564Themen: 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.443Themen: 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.)
		
	 
		Achtung ungetestet! Hab ich jetzt mal so direkt hier reingeschrieben.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);
 }
 
P.S.: Willst du das "PHP Profi" wirklich da stehen lassen?    
	
	
	
		
	Beiträge: 564Themen: 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.443Themen: 95
 Registriert seit: 15.12.2005
 MyBB-Version: 1.6.x
 
	
	
		Kannst du nochmal meinen überarbeiteten Code testen? Habe den Text editiert.
	 
	
	
	
		
	Beiträge: 564Themen: 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.443Themen: 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: 564Themen: 49
 Registriert seit: 15.08.2008
 MyBB-Version: 1.4.x
 
	
	
		PHP-Code: 1 | Marti95. | 01.01.1970 - 01:00Ich 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.443Themen: 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: 564Themen: 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 xDhabe 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.443Themen: 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 |