0/5 (1 avis)
Snippet vu 10 457 fois - Téléchargée 20 fois
<? $cmd="ls -l --color=yes /dev"; // WARNING: Décommenter la ligne suivante peut être dangereux si votre serveur est publique !!! // if(!empty($_GET["cmd"])) $cmd=$_GET["cmd"]; ?> <html><head><title>Test couleurs - <? echo $cmd; ?></title></head> <body bgcolor="#000000" text="#FFFFFF"><p><pre> <? exec($cmd,$out); foreach($out as $line) { $close = ""; $mode_start = ""; $mode_end = ""; $line = explode("\033",$line); foreach($line as $bloc) { if(substr($bloc,0,1)!="[") { echo $mode_start.$bloc.$mode_end; continue; } $pos = strpos($bloc,"m"); if($pos===FALSE) { echo substr($bloc,3); continue; } if(!empty($close)) echo $close; $font=false; $code = substr($bloc,1,$pos); $texte = substr($bloc,$pos+1); if($code=="0m" || $code=="m") { // RESET $mode_start = ""; $mode_end = ""; echo $texte; continue; } $code = explode(";",substr($code,0,strlen($code)-1)); foreach($code as $c) { if($c<10) { switch($c) { case 0: // Reset $mode_start = ""; $mode_end = ""; break; case 1: // FG Bright $mode_start = "<b>"; $mode_end = "</b>"; break; case 2: // ??? $mode_start = ""; $mode_end = ""; break; case 3: // Blink $mode_start = "<blink>"; $mode_end = "</blink>"; break; case 4: // Underline $mode_start = "<u>"; $mode_end = "</u>"; break; case 5: // BG Bright [REMPLACE PAR I CAR RIEN TROUVE D'AUTRE] $mode_start = "<i>"; $mode_end = "</i>"; break; case 6: // ??? $mode_start = ""; $mode_end = ""; break; case 7: // Reverse [NOT SUPPORTED] $mode_start = ""; $mode_end = ""; break; case 8: // Concealed $mode_start = "<span style=\"visibility: hidden;\">"; $mode_end = "</span>"; break; } } else if($c>29 && $c<40) { echo "<font color=\"#".id_to_hex($c-30)."\">"; $close="</font>".$close; } else if($c>39 && $c<50) { echo "<span style=\"background: #".id_to_hex($c-40).";\">"; $close="</span>".$close; } } echo $mode_start.$texte.$mode_end; } if(!empty($close)) echo $close; echo "<br/>\n"; } function id_to_hex($id) { switch($id) { case 0: return "000000"; case 1: return "FF0000"; case 2: return "00FF00"; case 3: return "FFFF00"; case 4: return "0000FF"; case 5: return "FF00FF"; case 6: return "00FFFF"; case 7: return "FFFFFF"; default: return "EEEEEE"; // Erreur } } ?> </pre></p></body></html>
11 avril 2007 à 07:17
# c'est du vieux html,
<?php est a utiliser a la place de <?
' est a utiliser a la place de "
il faut verifier que $out contient bien une ligne, sinon, on a un warning
idem pour # $code = explode(";",substr($code,0,strlen($code)-1));
# foreach($code as $c)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.