<?php
ob_start();
ob_flush();
system("dir C:\\");
/**
*ATENÇÃO: Se você for permitir que dados vindos do usuário sejam passados para a função system(), eles precisam passar por escapeshellarg() ou escapeshellcmd() para se certificar que os usuários não tentarão enganar o sistema com comandos arbitrários.
*/
$system=ob_get_contents();
$system=dos_encode($system,0,1);
ob_end_clean();
echo $system;
?>
Interpretando um arquivo PHP com saída acentuada usando o php.exe
<?php
//Este arquivo deve ser chamado pelo comando:
//C:\php\php.exe C:\Apache\htdocs\arquivo.php
//onde o 1º arquivo é o caminho do php.exe e o 2º o caminho deste arquivo
ob_start("dos_encode");
$pasta="C:\\";
echo "Lendo a pasta \"$pasta\"...\n\n# | Arquivo ou [pasta]\n";
ob_flush();
$i=0;
if ($dh = opendir($pasta)) {
while (($d_file = readdir($dh)) !== false){
$i++;
if(is_dir($pasta."\\$d_file")) echo "$i | [$d_file]\n";
else echo "$i | $d_file\n";
ob_flush();
}
}
echo "\nFinalizado.";
ob_end_flush();
?>
Pergunta
jose.rob.jr
Função dos_encode()
Esta função codifica e docodifica strings vindo e indo para o MS-DOS.
//dos_encode(string string[, boolean decode[, boolean html]]) function dos_encode($buffer,$to=true,$html=false){ $lista="á= à=… ã=Æ ä=„ â=ƒ Á=µ À=· Ã=Ç Ä=Ž Â=¶ é=‚ è=Š ë=‰ ê=ˆ É= È=Ô Ë=Ó Ê=Ò í=¡ ì= ï=‹ î=Œ Í=Ö Ì=Þ Ï=Ø Î=× ó=¢ ò=• õ=ä ö=” ô=“ Ó=à Ò=ã Õ=å Ö=™ Ô=â ú=£ ù=— ü= û=– Ú=é Ù=ë Ü=š Û=ê ç=‡ Ç=€ §=õ ¹=û ²=ý ³=ü £=œ ¢=½ ¬=ª º=§ ª=¦ °=ø ´=ï ¨=ù"; $lista=str_replace("\r","",$lista); $lista=str_replace("\t","",$lista); $lista=explode("\n",$lista); $separacao="\\!@|)(|@!/"; if($buffer){ //PHP4 /*** for($i=0;$i<strlen($buffer);$i++){ $buffer_o[$i]=substr($buffer,$i,1); } $buffer=$buffer_o; ***/ //PHP5 $buffer=str_split($buffer); $buffer=$separacao.implode($separacao,$buffer); } foreach($lista as $v){ $v=explode("=",$v); if($to) $buffer=str_replace($separacao.$v[0],$v[1],$buffer); else $buffer=str_replace($separacao.$v[1],$v[0],$buffer); } $buffer=str_replace($separacao,"",$buffer); if(!$to&&$html){ $buffer="<pre>".htmlentities($buffer)."</pre>"; } return $buffer; }Exemplos de uso: Lendo MS-DOS:<?php ob_start(); ob_flush(); system("dir C:\\"); /** *ATENÇÃO: Se você for permitir que dados vindos do usuário sejam passados para a função system(), eles precisam passar por escapeshellarg() ou escapeshellcmd() para se certificar que os usuários não tentarão enganar o sistema com comandos arbitrários. */ $system=ob_get_contents(); $system=dos_encode($system,0,1); ob_end_clean(); echo $system; ?>Interpretando um arquivo PHP com saída acentuada usando o php.exe<?php //Este arquivo deve ser chamado pelo comando: //C:\php\php.exe C:\Apache\htdocs\arquivo.php //onde o 1º arquivo é o caminho do php.exe e o 2º o caminho deste arquivo ob_start("dos_encode"); $pasta="C:\\"; echo "Lendo a pasta \"$pasta\"...\n\n# | Arquivo ou [pasta]\n"; ob_flush(); $i=0; if ($dh = opendir($pasta)) { while (($d_file = readdir($dh)) !== false){ $i++; if(is_dir($pasta."\\$d_file")) echo "$i | [$d_file]\n"; else echo "$i | $d_file\n"; ob_flush(); } } echo "\nFinalizado."; ob_end_flush(); ?>Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.