Ir para conteúdo
Fórum Script Brasil
  • 0

Função Para (de)codificar Textos No/para Ms-dos


jose.rob.jr

Pergunta

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...