
jose.rob.jr
Membros-
Total de itens
226 -
Registro em
-
Última visita
Tudo que jose.rob.jr postou
-
Eu já consegui :) eu fiz uma lista que troca o caractére codificado em iso8859-1 (mais comum) para a codificação do ms-dos
-
Eu não entendi seu script.... Parece que você se embolou ao escreve-lo :P Nesta linha, o final do PHP é ignorado, pois tá comentado A tag HTML está dentro do php A função em javascript está dentro do PHP, e mesmo se a linha não estivesse comentada, onde está o <script></script>? :)
-
você pode fazer assim: carrega a página em uma variavel, e corta tudo que vem antes de <A NAME="A"></A> já que a lista começa apartir daí, e corta tudo que vem depois de cortar, corta tudo o que vem depois de </TABLE>. Assím você vai ter uma variável com a tabela. Depois você pode tentar fazer uma expressão regular, ou tentar descobrir como a tabela é gerada e interpretar com o php. ;) eu fiz um exemplo de como transformar aquela página em XML, e se tiver especificado um mundo ele pega todos os mundos e cria um select com XHTML 1.0 <?php if(!empty($_GET['mundo'])) $mundo=$_GET['mundo']; else $mundo=null; if($mundo){ $pagina=file_get_contents("http://www.tibia.com/statistics/?subtopic=whoisonline&world=$mundo",false); $pagina=explode('<A NAME="A"></A>',$pagina); $pagina='<TR BGCOLOR=#F1E0C6><TD WIDTH=70%>'.$pagina[1]; $pagina=explode('</TABLE>',$pagina); $pagina=$pagina[0]; $pagina=str_replace("</TR>","</TR>\n",$pagina); $pagina=explode("\n",$pagina); $ER='/^$/'; $pagina=preg_replace($ER,"",$pagina); $ER='/^<TR[^>]+><TD[^>]+>(<A NAME="."><\/A>)?<A[^>]+>/'; $pagina=preg_replace($ER,"<nome>",$pagina); $ER='/<\/A><\/TD><TD[^>]+>/'; $pagina=preg_replace($ER,"</nome><level>",$pagina); $ER='/<\/TD><TD[^>]+>/'; $pagina=preg_replace($ER,"</level><vocacao>",$pagina); $ER='/<\/TD><\/TR>$/'; $pagina=preg_replace($ER,"</vocacao>",$pagina); foreach($pagina as $k=>$v) {if($v) $pagina[$k]="<char>\r\n\t\t$v\r\n\t</char>"; else unset($pagina[$k]);} $pagina="<lista>\r\n\t".implode("\r\n\t",$pagina)."\r\n</lista>"; header("Content-type: text/xml"); echo $pagina; } else{ $pagina=file_get_contents("http://www.tibia.com/statistics/?subtopic=whoisonline&world=Antica",false); $pagina=explode('<SELECT NAME="world">',$pagina); $pagina=$pagina[1]; $pagina=explode('</SELECT>',$pagina); $pagina=$pagina[0]; //$pagina=explode("\r\n",$pagina); //$ER='/^<[A-Z ="]+>/'; $ER='/<[A-Z ="a-z]+>/'; $pagina=preg_replace($ER,"",$pagina); $pagina=explode("\n",$pagina); //print_r($pagina); $html="<select name='mundo'>"; foreach($pagina as $v){ $v=trim($v); if(!empty($v)) $html.="<option value='$v'>$v</option>"; } $html.="</select>"; ?> <?='<?xml version="1.0" encoding="iso-8859-1"?>'?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Selecione um mundo</title> </head> <body> <form method="get" action=""> <div> Selecione um mundo: <?=$html?> <input type="submit" value="Ver quem está on-line"/> </div> </form> <p> <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88" style="border:0px" /></a> </p> </body> </html> <? } ?>
-
Eu to fazendo um script em PHP para gerenciar minha rede. O principal dele já está 90% completo. O único problema é que ele não acessa a rede direto, e preciso acessar como se tivesse em MS-DOS. Eu ví uns tópicos aqui que me ajudaram, mas agora surgiu outro que não to conseguindo resolver.... Eu fiz ele ler os computadores ligados e suas pastas compartilhadas, mas para acessar estas pastas compartilhadas eu preciso mapear uma unidade usando net use U: \\computador\shared. E para alterar eu preciso deletar a unidade usando net use U: /delete certo? O problema é que se eu abrir a unidade mapeada no explorer, o comando do ms-dos vai fazer uma pergunta: Existem arquivos abertos e/ou localizações incompletas de pastas pendentes na conexão com Z:. Deseja continuar a desconexão e forçar o fechamento? (S/N) [N]:Esta pergunta é o problema, não tem como responder, e o PHP trava porque fica esperando o comando terminar que não termina porque tá esperando minha resposta e eu não respondo porque não dá pra responder ...... Eu postei aqui porque é mais MS-DOS do que PHP Resumindo: Como eu faço para o MS-DOS não perguntar se eu tenho certeza? []s
-
eu prefiro o htmlentities() mais segurança
-
já tento este: http://scriptbrasil.com.br/forum/index.php?showtopic=91231
-
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(); ?>
-
Descobri uma maneira!!!!! só não é muito simples, mas ajuda muito! :D se você editar um arquivo de texto no ms-dos, a codificação automaticamente será a do ms-dos. então eu vo criar um arquivo de texto só com acentos e salvar, ai eu abro no bloco de notas e vai aparecer o carctére errado, se eu colocar este caractére errado no lugar do certo no codigo, no prompt vai aparecer o certo :D ex: [edit] formei uma lista, quem quiser, seve para batch também: á= à=… ã=Æ ä=„ â=ƒ Á=µ À=· Ã=Ç Ä=Ž Â=¶ é=‚ è=Š ë=‰ ê=ˆ É= È=Ô Ë=Ó Ê=Ò í=¡ ì= ï=‹ î=Œ Í=Ö Ì=Þ Ï=Ø Î=× ó=¢ ò=• õ=ä ö=” ô=“ Ó=à Ò=ã Õ=å Ö=™ Ô=â ú=£ ù=— ü= û=– Ú=é Ù=ë Ü=š Û=ê ç=‡ Ç=€ §=õ ¹=û ²=ý ³=ü £=œ ¢=½ ¬=ª º=§ ª=¦ º=ø [edit2] a função bot_say() ficou igual a função dos_encode()
-
palavras acentuadas não estão sendo exibidas corretamente.... como faz pra escrever com acento? ex: ação sai AþÒo <_<
-
O htmlentities() faz isso.... eu tentei assim: function bot_say($buffer){ //esta função tem o objetivo de tentar corrigir o erro no prompt :) return htmlentities($buffer); } mas não deu certo... a saida que normalmente vai pro browser vai direto pro prompt, só o php é interpretado... ex: <_<
-
Wml + Php Sistema De Login
pergunta respondeu ao delaruvi de jose.rob.jr em Outras Linguagens de Programação
posta os scripts do login delaruvi -
já to usando... mas sai daquela maneira do proprio script com o htmlentities() apareceu o código <_< (operação) vo postar a parteque estou usando pra testar... <?php //Calcular o tempo que a página leva para ser carregada $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime; if(!@$_SERVER["HTTP_USER_AGENT"]) define("BOT_MODE",true); else define("BOT_MODE",false); //Início do script function bot_say($buffer){ //esta função tem o objetivo de tentar corrigir o erro no prompt :) return $buffer; } function say($msg,$class=0,$last=0){ global $SAY_I, $SAY_V; if(!$SAY_I){ if(!BOT_MODE){ ob_start(); echo "<b>Aguarde... Estamos em operação. Não atualize nem cancele o carregamento da página. Caso contrário você não poderá acompanhar o que está acontecendo.</b>"; echo "<table border='1' class=\"atividade\"><tr><th>#</th><th>class</th><th>Registro</th></tr>"; ob_flush(); } else{ ob_start("bot_say"); print "Aguarde... Estamos em operação....\n"; ob_flush(); print "Não feche o prompt caso contrário você não poderá acompanhar o que está acontecendo.\n"; ob_flush(); print "# class Registro\n"; ob_flush(); } $SAY_I=1; if($SAY_V) $SAY_V++; else $SAY_V=1; } if($msg){ if(!BOT_MODE){ echo "<tr><td>$SAY_I</td><td>$class</td><td><p id=\"teste_foco{$SAY_V}$SAY_V\">$msg</p></td></tr>";$SAY_I++; ob_flush(); } else{ print "$SAY_I $class $msg"; ob_flush(); } } if($last){ if(!BOT_MODE){ echo "<tr><td colspan=\"3\"><b><u>Finalizado</u></b></td></tr>"; echo "</table>"; } else{ print "Finalizado"; } ob_end_flush(); unset($SAY_I); } } say("Teste"); exit; ?>
-
Eu fiz um script está programado para rodar todos os dias 10h da noite pelo php-cgi.exe Ele roda sem problemas, mas os caracéres estão saindo errado.... operação por exemplo está aparecendo operaþÒo eu controlo o buffer no script. já tentei codificar o buffer para utf8 mas aí operação sai opera├º├úo <_< como eu faço pra corrigir isso?
-
Alguém sabe porque o google está com essa imagem? :) http://www.google.com.br
-
descobri uma maneira de escapar do bug :) antes de fazer qualquer coisa com o arquivo, verificar se o caminho para ele não tem mais de 255 caractéres. se tiver 1 a mais vai dar o bug e travar o apache. se tiver mais, ignorar o arquivo.
-
a função is_dir da bug quando um arquivo tem nome grande segundo ... alguém já teve problema com ele? tem algum jeito de passar por esse bug? o bug que tá dando aqui é igual o do flobee do php.net: http://br.php.net/manual/pt_BR/function.is-dir.php#51102 <_< O que eu faço?
-
Qual a versão do seu PHP? a função fprintf() precisa do PHP 5 http://br.php.net/manual/pt_BR/function.fprintf.php
-
você está colocando na ordem certa? aaaa-mm-dd
-
acho que não existe. seria perigoso de mais. imagina, você entra num site e disconecta a internet. E misteriozamente (no I.E. pode tudo :P) esta página virar a home do navegador.... :)
-
No botão de submit coloque um onclick="window.open('about:blank','pop','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=400,height=300');" e no form poe target="pop" ex: ;) ps: substitue & #39; por apóstofe ( ' ) :)
-
Problema Com A Construção Da Tabela
pergunta respondeu ao Renato Penna de jose.rob.jr em HTML, XHTML, CSS
Não, é com HTML mesmo :) Para mesclar as células na mesma linha você usa o colspan e na mesma coluna o rolspan. Por exemplo: ;) -
Eu esqueci como faz :unsure: como eu faço pra chegar nas funções dentro do iframe, funções, ids, etc... ex: <html> <head> <title>?</title> <script type="text/javascript"> <!-- function alerta(){alert(document.ex.name.value);} //--> </script> </head> <body> <form name="ex" action="" method="POST"> Nome: <input type="text" name="name"/> </form> </body> </html> como você faria para executar o alerta() se a página estivesse dentro de um iframe e você precisasse chamar pela página pai?
-
Um exemplo de como você pode fazer isso: <head> <style type="text/css"> <!-- #campos{display: none;} body{text-align: center;} --> </style> </head> <body> <div id="campos"> <br /> Comunicador Instantânio: <select name="comunicador[]"> <option value="1">MSN</option> <option value="2">Yahoo!</option> <option value="3">ICQ</option> </select> <input type="text" maxlength="12" name="com_id[]" /> </div> <form name="cadastro" method="POST" action="action"> <div id="div_comm"> Comunicador Instantânio: <select name="comunicador[]"> <option value="1">MSN</option> <option value="2">Yahoo!</option> <option value="3">ICQ</option> </select> <input type="text" maxlength="12" name="com_id[]" /> </div><br /> <input type="button" onclick="document.getElementById('div_comm').innerHTML+=document.getElementById('campos').innerHTML;" value="Mais campos" /> <br /><br /> <input type="reset" onclick="document.getElementById('div_comm').innerHTML=document.getElementById('campos').innerHTML;" value="Limpar campos" /> <input type="submit" value="Enviar" /> </form> ;)
-
Converter Um Ponto Flutuante
pergunta respondeu ao jose.rob.jr de jose.rob.jr em Ajax, JavaScript, XML, DOM
Eu coloquei a página aqui -> josehp.275mb.com/conversor.html Se você converter por exemplo 1000 ano-luz para milímetros, vai dar 9.460528405e+21. Eu coloquei um filtro pra descobrir se o valor é um ponto flutuante, mas fica difícil de entender. Então eu queria converter esse número flutuante para número normal, mesmo que o resultado final de string. eu tentei fazer uma função pra isso, mas não deu muito certo..... function converte(N){ N=N.toString(); if(N.toLowerCase().indexOf("e-")>=0){ n=N.toLowerCase().split("e-"); p_pos=N.indexOf("."); if(p_pos<0){ fin="0."; for(i=0;i<n[1]-1;i++) fin+="0"; return fin+n[0]; } } else if(N.toLowerCase().indexOf("e")>=0){ if(N.indexOf("+")>=0) n=N.toLowerCase().split("e+"); else n=N.toLowerCase().split("e"); p_pos=N.indexOf("."); if(p_pos<0){ fin=n[0]; for(i=0;i<n[1];i++) fin+="0"; return fin; } } else{return N;} } Tem alguma função predefinida do browser para fazer isso? Se não tiver, como eu posso fazer? É possível? grato, JR -
quais seriam essas meta tags? :P to curiozo também :D