Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[HTML] Code / Zitat BOX
#11
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.
Zitieren
#12
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
Zitieren
#13
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.
Zitieren
#14
Kannst du nochmal meinen überarbeiteten Code testen? Habe den Text editiert.
Zitieren
#15
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.
Zitieren
#16
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
Zitieren
#17
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!
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.
Zitieren
#18
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?
Zitieren
#19
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.
Zitieren
#20
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
Zitieren