uhmmmm: php2java

4 03 2008

Segue o link
http://www.numiton.com





Linq for php

25 01 2008

Segue o link:

http://blog.maartenballiauw.be/post/2008/01/LINQ-for-PHP-Language-Integrated-Query-for-PHP.aspx





Dica rápida: printf(“{0} {1} {0} “, ‘foo’, ‘bar’);

14 12 2007

Ok, não é bem isso, mas é quase. Segue a conversa:

<anmsx> printf("ola {0}, hoje é {1}. Ja disse seu nome, {0} ? ", ‘anmsx’, ‘domingo’);
<anmsx> queria algo assim no php
<anmsx> tipo q tem no c#
<ecl> ahhaha
<anmsx> sacou a ideia ?
<ecl> sim
<anmsx> da pra fazer em codigo mesmo
<ecl> mas da pra fazer isso atualmente com o recurso atual tambem, ta ligado?
<anmsx> si
<ecl> hahah, falei cheio de redundancia
<anmsx> func_get_args ou coisa assim, nao ?
<ecl> anmsx: falo no printf mesmo
<anmsx> ah é ?
<anmsx> como ?
<anmsx> isso eu nao sei
<ecl> %[numero do arg]$[tipo]
<anmsx> 5.3 ?
<ecl> nao
<ecl> antigo.
<anmsx> xover
<ecl> de qualquer forma, usando o {N} para string, seria legal
<anmsx> certeza q é dessa forma q colocou ?
<anmsx> onde tem isso na doc ?
<anmsx> nao funcionou
<anmsx> $ php -r ‘echo printf("Ola %1\$s hoje é %2\$s, certo %1\$s ?", "anmsx", "domingo");’
<anmsx> Ola anmsx hoje é domingo, certo anmsx ?
<anmsx> cool





Rapidinha: Obter cotação da bolsa de valores em tempo real …

19 11 2007

… claro, com um pequeno atraso de 15 minutos. E ajuda do sempre útil simplexml, do PHP5. Segue:

<?php
// author: Eziel Silva
@list($self, $papel, $time, $tot) = $argv;
if (!$papel) {
    echo sprintf('uso:    %s <PAPEL> [temp][valor]%s', $self, "\n");
    echo sprintf('PAPEL:  VALE5%s', "\n");
    echo sprintf('temp:   tempo de atualizacao - default = 20%s', "\n");
    echo sprintf('valor:  quanto em papeis da empresa voce possui%s', "\n");
    return 1;
}

$url  = sprintf('http://www.bovespa.com.br/Cotacoes2000/formCotacoesMobile.asp?codsocemi=%s', $papel);
$sXml = @simplexml_load_string(@file_get_contents($url));

if (!$sXml) {
    echo sprintf('Simbolo "%s" nao encontrado', $papel);
    return 1;
}

$format = "Hor: %s Osc.: %s%% Rend.: %s\n";
if (!$tot) {
    $format = "Hor: %s Osc.: %s%%\n";
}
if (!$time) {
    $time = 20;
}

while(true) {
    $sXml = @simplexml_load_string(@file_get_contents($url));
    if (!$sXml) {
        echo sprintf('Erro atualizando... aguardando 5s%s',"\n");
        sleep(5);
        continue;
    }
    $c = $tot * str_replace(',','.', $sXml->PAPEL['OSCILACAO']) / 100;
    // hack pra me deixar feliz... caso esteja perdendo $$$, 
    // descomente a linha abaixo
    //$c = $c * -1; 
    echo sprintf($format, $sXml->PAPEL['HORA'], $sXml->PAPEL['OSCILACAO'], $c);
    sleep($time);
}

$ php bov.php
uso: bov.php [temp][valor]
PAPEL: VALE5
temp: tempo de atualizacao – default = 20
valor: quanto em papeis da empresa voce possui

$ php bov.php VALE5
Hor: 18:08:06 Osc.: -3,55%

$ php bov.php VALE5 5 1000
Hor: 18:08:06 Osc.: -3,55% Rend.: -35.5

Arquivo:
bov.php





Desafio do dia / 2

18 04 2007

Depois de ter sido explicado o primeiro desafio, vamos partir para o segundo.
Que tal algumas operações bit-a-bit ?


<?php
  
// desafio2.php
  
$x 2;
  {
    
$x += print(‘Iniciando ‘);
    {
        echo 
‘desafio 2’;
        
$y $x << 1;
    }
    
$y $x $y sprintf(‘%d’,~($y^$x));

    $z = print(“\n”);
    
    if (
$x $y) {
        
$x ^= $x;
    } {
        
$y ^= $y;
    } {
        if (
$x $y) {
            echo 
‘$y menor do que $x’;
        } else {
            echo 
‘$y maior do que $x’;
        }
    }
  }
  echo 
“\n”;

A pergunta é: O que será exibido na execução do script ?
Resposta e explicação em breve.
Nota: Não vale executar para saber : )





Resposta Desafio do Dia

18 04 2007

Fala galerinha : )
Bom, existem certas pessoas ai que propoem desafios, não sabem resolver, e ai ficam me implorando no msn para que eu resolva.
Vamos então dar uma explicação aí sobre o funcionamento desse código, e demonstrar o resultado.


<?php
// desafio1.php

$n  'X';
$
$n 'N';
$m  'Y';
$
$m 'M';
$c  = (int)($n == $$n);

echo $
    {
        $c == 
    
$n:
    
$m
    
};
?>

Como todos sabem, o símbolo de $, indica a declaração de uma variável, mas muitos não conhecem a utilização do $$
O símbolo $$, significa que estamos utilizando o valor definido na váriavel, para transforma-la em variável. Hein?
Vejamos esse exemplo:


<?php

$x 'var1';

// Essa linha é o mesmo que $var1 = 'Oi, sou a variavel 1';
$$x 'Oi, sou a variavel 1';

echo $var1;

?>

Acho que esse exemplo deixa tudo bem claro né?
Acredito que outra parte que pode confundir no código, é o cast que o nosso amiguinho faz:
$c = (int)($n == $$n);
Isso ai nada mais é do que o retorno de um if. Ele verifica se $n == $$n, ou seja, está verificando se $n == $X. Caso seja, isso ai deve retornar true, caso não seja deve retornar false. Aquele (int) na frente, converte o tipo bool para o tipo int. True será convertido para 1, false será convertido para 0.
Como sabemos que $n não é igual a $X, essa sentença irá retornar 0.

Agora vem a pegadinha da coisa, a função echo. Irei escreve-la em uma só linha para ficar mais claro:

echo ${ $c == 1 ? $n : $m };

O que o rapazinho faz ai, é basicamente um if também, perguntando se $c é igual a 1 (que nós já sabemos que não é). Caso $c fosse igual a 1, essa sentença retornaria o valor de $n, mas como não é, o que ela faz é retornar o valor de $m. Sabemos que $m vale ‘Y’, logo, reescrevendo essa linha após o resultado do if, teriamos:

echo $Y;

$Y nós sabemos que vale ‘M’. Tadam! Respondido o desafio do menino E. Silva ; D
Espero que tenham achado interessante ; D

[]s





Desafio do dia

17 04 2007

O que será exibido durante a execução do seguinte script (se funcionar):


<?php
// desafio1.php

$n  ‘X’;
$
$n ‘N’;
$m  ‘Y’;
$
$m ‘M’;
$c  = (int)($n == $$n);

echo $
    {
      $c == 
        
$n:
        
$m
    
};
?>

Explicação no próximo post (junto com mais um desafio) : )