PHP: Array de Caracteres != String

Já não é a primeira vez que eu vou fazer uma aplicação em PHP e quero usar uma função de arrays numa string. Como um bom dicípulo da linguagem C, aprendi que uma string é um array de chars. O PHP tenta fazer algo parecido com isso, aceitando que possamos acessar caracteres da string com $string[indice]; porém, não sei por quê, não podemos usar funções de array nas strings e vice-versa.

Vamos supor que eu queira fazer algo simples: usar a função shuffle() numa string (criar um anagrama qualquer de uma string). Aí o PHP me força a fazer isso aqui:

<?php
        $mensagem="anagrama";
        $array=Array();
        for ($i=0; $i<strlen($mensagem); $i++) {
                $array[]=$mensagem[$i];
        }
        shuffle($array);
        $mensagem="";
        for ($i=0; $i<count($array); $i++) {
                $mensagem.=$array[$i];
        }
?>

Pô… É um código muito feio! Quer dizer… Se o C tivesse a função shuffle() (ou o PHP “soubesse” que strings não passam de array de chars), bastaria fazer:

<?php
$mensagem="anagrama";
shuffle($mensagem);
?>

Economia de cérebro, de banda, de código, de dedos… De tudo!

Então, cheguei a conclusão de que eu é que devo estar entendendo algo errado. Alguém conhece uma maneira do PHP tratar strings como arrays? Andei procurando no manual e achei a função settype(), mas ela não faz o que eu quero, porque converte uma string para um array de strings!

Viagens

Estou saindo daqui a uns 30 minutos para Florianópolis, onde passarei o natal. Por uns 10 dias, não verei e-mail, não entrarei em IMs e não postarei aqui. No ano novo, estarei em Laguna e devo voltar para Itajaí pelo dia 3-5 de janeiro de 2006.

Só estou postando para desejar a todos um feliz natal e um ótimo ano de 2006!

Bill Gates é o nosso herói!

É engraçado a imagem do Bill Gates que a mídia tem feito com algumas notícias… Não sei se é ele que realmente está se tornando um ser humano ou ele está sendo pressionado assim e está tendo que se fazer pra brigar com o Google e o Yahoo (claro que esse segundo motivo é bem mais provável e, quem conhece o Bill Gates, sabe muito bem disso). Dessa vez eu li no meu feed de tecnologia do Terra uma notícia de um menino de 10 anos que presidiu a Microsoft por um dia.

Mas o pior mesmo foi aquela outra dos caras da Microsoft quererem padronizar o símbolo do RSS. Pô… Quando é que a Microsoft tentou padronizar alguma coisa na história? :D Eles estão realmente mudando. E acho que isso não é muito legal, porque eles parecem estar fazendo isso por interesse. Vejo um Google cada vez mais capitalista e, mesmo com propostas legais de software livre e talz, tá se unindo com a Microsoft em várias coisas. Não era esse o final que eu esperava para essa história.

De qualquer maneira, o bom é que a Microsoft está começando a desenvolver coisas livres também e parece que vamos ter uma mudança bem grande aí na internet nos próximos 10 anos por causa de todos esses acontecimentos, da Web 2.0 e dessas parcerias.

Um pouco de tudo

Hoje é dia 21… Faltam 4 dias pro natal. Dia 24, vou viajar pra Floripa e não vou voltar para casa provavelmente até provavelmente 2-5 de janeiro.

Estou de férias, em casa, sem nada pra fazer. Eu fiz uma besteira no meu Slackware (com objetivos experimentais) e acabei desinstalando um monte de bibliotecas dele. A partição do Windows ficava com as músicas e já tava meio pesada, então aproveitei pra formatar tudo. Nova tabela de partições:

  • hda1, 10gb, FAT32, músicas apenas
  • hda2, 14gb, FAT32, Windows XP
  • hda3, 500mb, Linux Swap, swap
  • hda5, 500mb, ReiserFS, /boot
  • hda6, 5gb, ReiserFS, nada por enquanto
  • hda7, 6gb, ReiserFS, Slackware (/)
  • hda8, 5gb, ReiserFS, nada por enquanto

Deixei dois espaços estratégicos em branco pra instalar distribuições para teste ou simplesmente fazer experiências (ao invés de desinstalar as libs do Slackware oficial, eu desinstalo as delas! hehehe).

O pior é que quando eu particionei e comecei a instalação do Slackware, eu percebi que o disco tava totalmente riscado e não funcionou aquela instalação. Então instalei primeiro o Windows e dele baixei o ISO do Slackware.

Como sempre, perdi mais tempo personalizando o Windows do que o Slackware, até porque já tô mais acostumado com o Linux. Aí eu aproveitei um pouco as férias, instalando o Age of Empires II (um jogo de estratégia da Microsoft) e tentei emulá-lo no Linux, mas ainda não consegui fazer dar tudo certo.

Pra completar, meu desktop deu pau no HD. Estamos rodando só lives, criei até um script para configurar rede, compartilhar internet e redirecionar algumas portas pro laptop.

Ahh.. E chegaram meus 20 cds do Ubuntu que eu pedi há dois meses! :)


Coisas que tenho lido

Lista de Presentes

Se você quer muito me dar um presente, mas não sabe o que, essa é a solução!

  • iPod 30gb (ou mais, porque menos que isso não cabe minhas músicas)
  • Máquina fotográfica digital
  • HD de 80gb+ para desktop ou laptop HP Pavilion ze4610us

Yahoo! comprando briga com Google

Os rivais Google e Yahoo! continuam a dividir os serviços mais populares da Web 2.0. Dessa vez, o Yahoo! comprou o del.icio.us (aquele site de bookmarks estilo Web 2.0 que eu só não uso por preguiça). A notícia foi postada aqui no blog do del.icio.us.

O Google, o Yahoo e a Microsoft estão competindo em vários serviços internéticos atuais. Alguns exemplos são as buscas (onde o Google tem o monopólio), os mensageiros instantâneos (onde a Microsoft tem o monopólio) e as fotos (onde o Flickr/Yahoo ganha). O Yahoo! parece estar investindo pra virar o jogo. Eles já compraram o Flickr há pouco tempo e agora pegaram o del.icio.us… Acho que, para nós, essa concorrência é muito boa!

© 2005–2020 Tiago Madeira