Monthly Archives: October 2010

Salvem os bebês foca: Espaços duplicados

Bebê Foca

Bebê Foca

Programar pode ser uma tarefa árdua ou gratificante e geralmente isso está relacionado com o tipo de código que você está mexendo. Existem vários tipos de código, mas o mais repulsivo sempre é o Spaguetti: uma maçaroca generalizada de todas as coisas, páginas que ultrapassam as milhares de linhas geralmente codificadas por pessoas que não acreditam no uso de funções e boas práticas de desenvolvimento (não vou nem cogitar Orientação a Objetos).

Agora, existem também os desenvolveres sobrinhos criativos. Eles se esforçam (ou não) mas acabam por não chegar lá, falhando miseravelmente em sua tentativa frustrada de resolver um problema. Na verdade eles resolvem, não o problema em si mas o resultado do problema e quando isso acontece, um inocente bebê foca é morto violentamente por uma facção de desenvolvedores xiitas.

O problema

É incrível como podemos sempre contar com os usuários. Existe uma síndrome constante que se espalha como praga no mundo: espaços duplos. Não sei o porquê disso, mas é incrível como sempre precisamos tratar espaços duplicados dentro das nossas aplicações a fim de não quebrar o layout ou ferrar com todo o design imaculado de um portal.

Vamos a primeira tentativa do nosso querido amigo:

[php]
function remover_espacos_duplos($texto) {
$texto = str_replace(" "," ", $texto);
$texto = str_replace(" "," ", $texto);
return $texto;
}
[/php]

Com o tempo nosso sobrinho percebeu que poderiam haver mais que dois ou três espaços e que essa função não era a solução pro problema. Não demorou e surgiu a versão 2.0 da função:

[php]
function remover_espacos_duplos($texto) {
$espacos = array(" "," "," "," ");
foreach ( $espacos as $espaco ) {
if ( strpos($texto, $espaco) !== false ) {
$texto = str_replace($espaco, ‘ ‘, $texto);
}
}
return $texto;
}
[/php]

Há! Bem melhor agora! Agora ela contempla até 5 espaços consecutivos. Já imaginou quando alguém colocar 20 espaços consecutivos? Como será que nosso amiguinho iria resolver? Que Deus proteja os bebês foca.

A solução

Para evitar que o pessoal copie as funções acima sem ler o post e consequentemente entender que se trata de uma brincadeira e de como não resolver o problema, vamos sempre propor uma solução, e pra esta a melhor é:

[php]
function remover_espacos_duplos($texto) {
return preg_replace(‘/\s\s+/’, ‘ ‘, $texto);
}
[/php]

Ajude a salvar bebês foca

Nos envie algum código de sobrinho que você achou por aí. Não precisamos de nomes, mas uma história é sempre interessante. Envie um email para sobrinhagem@phpsp.org.br

Vagas: Programador PHP Pleno e Sênior

A Lampada Global, integradora de sistemas open source, contrata Programadores PHP Pleno e Sênior, com experiência comprovada, para a contratação imediata, salário a combinar. Região: SP, Centro – Republica. CV para equipe@lampadaglobal.com.