MyBB.de Forum

Normale Version: [HTML] Code / Zitat BOX
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
PHP-Code:
$array explode("code",$row3->message);
                      
$code $array[1];
                      
$code highlight_string("$code");
                      
$message $array[0]."".$code."".$array[2]; 

gibt nur fehler
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? Confused
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
Kannst du nochmal meinen überarbeiteten Code testen? Habe den Text editiert.
wird ebenfals eine 1 angezeigt
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. Wink

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_linetrue)).'</td></tr>';
        else
            
$formatted_code .= '<td>'.ereg_replace('(&lt;\?php&nbsp;)+'''str_replace(array('<code>''</code>'), ''highlight_string('<?php '.$code_linetrue))).'</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... Confused
PHP-Code:
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!
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?
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?
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
Seiten: 1 2 3