Ferramenta para validar código SQL

Neste post o PHP Blog apresenta uma ferramenta de ajuda na validação de códigos SQL.
Com ela é possível criar tabelas, inserir, atualizar, excluir e retornar dados.

http://www.sqlize.com/

Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é a linguagem de pesquisa declarativa padrão para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. (Wikipédia)

SQL de Exemplo:

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `nome` varchar(45) NOT NULL,
  `email` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
);

INSERT INTO `user` VALUES (NULL, 'User 1', 'user1@me.com'), (NULL, 'User 2', 'user2@me.com');

SELECT * FROM `user`;

Esta ferramenta ajuda na validação de códigos SQL.
Com ela é possível criar tabelas, inserir, atualizar, excluir e retornar dados.

Share Button

Como criar arquivo htaccess online

Neste post o PHPBlog mostra uma ferramenta para criar o .htaccess online.

Em vários servidores web (geralmente Apache), .htaccess (hypertext access) é o nome padrão de um arquivo de configuração a nível de diretório que permite um gerenciamento descentralizado das configurações do servidor web. Ele é colocado dentro de cada diretório ou subdiretório onde se deseje subescrever as configurações de escopo global; o alcance desta subconfiguração é determinada pelo administrador do servidor. (Wikipédia).

Confira aqui.

http://www.htaccesseditor.com/pt.shtml

Share Button

Como descobrir a fonte utilizada em uma imagem

Esqueceu a fonte que utilizou para criar uma imagem/logo ?
Não tem problema… Existe uma ferramenta que ajuda a identificar a fonte a partir de uma imagem.

Confira Aqui
http://www.myfonts.com/WhatTheFont/

Share Button

Como testar a sua expressão regular em javascript

Em ciência da computação, uma expressão regular (ou o estrangeirismo regex, abreviação do inglês regular expression) provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres. Expressões regulares são escritas numa linguagem formal que pode ser interpretada por um processador de expressão regular, um programa que ou serve um gerador de analisador sintático ou examina o texto e identifica partes que casam com a especificação dada (Wikipédia).

Esta é uma ferramenta de ajuda para desenvolvedores testarem Expressões Regulares.

Confira aqui: http://regexpal.com/

Share Button

Como criar menu lateral responsivo utilizando jQuery Sidr

Fonte: http://www.berriart.com/sidr/
Exemplo: Aqui
Arquivos: Aqui
Documentação: Aqui

É obvio que o próprio site do desenvolvedor contem todas as informações/exemplos necessários para a implementação dos menus.
Vou ressaltar aqui as funcionalidades básicas.

Após realizar o download do pacote, teremos:

<!DOCTYPE html>
<html>
  <head>
    <!-- Your stuff -->

    <!-- Include Sidr bundled CSS theme -->
    <link rel="stylesheet" href="javascripts/sidr/stylesheets/jquery.sidr.dark.css">
  </head>
  <body>
    <!-- Your stuff -->

    <!-- Include jQuery -->
    <script src="javascripts/jquery.js"></script>
    <!-- Include the Sidr JS -->
    <script src="javascripts/sidr/jquery.sidr.min.js"></script>
  </body>
</html>

Criando o menu:

<a id="simple-menu" href="#sidr">Toggle menu</a>

<div id="sidr">
  <!-- Your content -->
  <ul>
    <li><a href="#">List 1</a></li>
    <li><a href="#">List 2</a></li>
    <li><a href="#">List 3</a></li>
  </ul>
</div>

<script>
$(document).ready(function() {
  $('#simple-menu').sidr();
});
</script>

Seguindo a documentação do plugin é possível definir o tipo/formato do menu a criar.

Espero ter ajudado (:

Share Button

Jogo da Velha utilizando jQuery e PHP

Autor: Amin Saeedi
Fonte: phpclasses.org

Download dos Arquivos: Aqui
Exemplo Funcionando: Aqui

Bom… não tem muito o que explicar…
O jogo é constituído de algumas classes em PHP e algumas libraries escritas em jQuery e Javascript.

A interação do jogo é feita através de requisições ($.post) do jQuery no arquivo (libs/TicTacToe.js) ao arquivo index.php

Arquivo: index.php

<?php
    set_time_limit(0);

    require 'Board.php';
    require 'TicTacToe.php';

    $board = explode(',', $_POST['board']);
    foreach ($board as $key => $b) {
        $board[$key] = intval($b);
    }

    $ttt = new TicTacToe();
    $response = $ttt->play($board);
    echo json_encode($response);
?>

O index.php recebe as posições que estão marcadas no quadro e efetua o cálculo para definir a próxima jogada.
O retorno é no formato JSON interpretado pela biblioteca Javascript…
Assim até o final…

Para alterar quem inicia o jogo basta alterar no arquivo (/libs/Position.js):

<?php
var Const = {
    HUMAN: 1,
    BLANK: 0,
    COM: -1,
    TURN: this.HUMAN
};
?>

Para:

<?php
var Const = {
    HUMAN: 1,
    BLANK: 0,
    COM: -1,
    TURN: this.COM
};
?>

Vale a pena percorrer as classes do jogo para entender o seu funcionamento.

Espero que gostem!

Até (:

Share Button

Como fazer diff entre strings em PHP

Autor: Jan Altensen
Fonte: phpclasses.org

Download dos Arquivos: Aqui
Exemplo Funcionando: Aqui

Com essa classe é possível fazer a comparação e o diff em strings.

Arquivo: index.php

<?php

    require_once("DiffUtil.class.php");

    $a = 'PHP Blog
        Teste para comparar Str
        Ultima Linha';

    $b = 'PHP Blog
        Teste para comparar String
        Ultima';

    //Resultado da comparação em raw
    echo print_R(DiffUtil::compare($a, $b, true));

    //Resultado da comparação no modo diff
    echo nl2br(DiffUtil::compare($a, $b));
?>

O terceiro parâmetro do método “compare” faz com que a função retorne a comparação no formato raw.
A ultima linha mostra o Diff entre as duas strings.

Interessante (:

Até !

Share Button

Como capturar o endereço IP do cliente utilizando PHP

Autor: Archzilon Eshun-Davies
Fonte: phpclasses.org

Exemplo Funcionando: Aqui

Este tutorial é composto apenas por uma classe que de forma bem simples detecta o IP do cliente que está acessando o script.

A classe pode também verificar a variável super-global pedido do servidor para ver se o usuário está acessando o site usando um proxy.
Caso esteja, ele retorna o endereço IP de usuário original exposto pelo servidor proxy.
Caso contrário, a classe retorna o endereço IP remoto atual conectando ao servidor HTTP.

Arquivo: cIP.php

<?php

    # Set to true if you want to test the class
    $TEST = false;

    interface iIP {
        public static function getusrip();
    }

    class cIP implements iIP {

        /**
         * Returns User IP Address
         * @params
         *        IN:  NONE
         *        OUT: ip address(0.0.0.0)
         */
        public static function getusrip() {
            $ip = null;
            if ((isset($_SERVER['HTTP_X_FORWARDED_FOR'])) &&
                    (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))) {
                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
            }
            elseif ((isset($_SERVER['HTTP_CLIENT_IP'])) &&
                    (!empty($_SERVER['HTTP_CLIENT_IP']))) {
                $ip = explode(".", $_SERVER['HTTP_CLIENT_IP']);
                $ip = "{$ip[3]}.{$ip[2]}.{$ip[1]}.{$ip[0]}";
            }
            elseif ((!isset($_SERVER['HTTP_X_FORWARDED_FOR'])) &&
                    (empty($_SERVER['HTTP_X_FORWARDED_FOR'])) &&
                    (!isset($_SERVER['HTTP_CLIENT_IP'])) &&
                    (empty($_SERVER['HTTP_CLIENT_IP'])) &&
                    (isset($_SERVER['REMOTE_ADDR']))) {
                $ip = ($_SERVER['REMOTE_ADDR']);
            }
            else {
                // ip is null
            }
            return ($ip);
        }

    }

    if ($TEST) {
        $ip = cIP::getusrip();
        print "IP Capturado: $ip";
        exit();
    }
?>

Para testar a classe, basta alterar a variável “$TEST = false;” para “$TEST = true;”.

Até (:

Share Button

Tirar foto utilizando Webcam e PHP

Fonte: Aqui

Author: Vivek Moyal
Tradução e Ajustes: PHPBlog
Download dos Arquivos: Aqui

*Não colocarei o exemplo funcionando aqui pois não tenho como prever o conteúdo das fotos tiradas. ehehehehehehe

Para este tutorial, utilizaremos o webcam.js desenvolvido pelo Joseph Huckaby.
Disponível em: https://code.google.com/p/jpegcam/

Vamos as explicações.

No arquivo index.php encontramos:

<!DOCTYPE html>
<html>
<head>
<title>PHP Blog - Exemplo de utilização de Webcam com PHP</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script type="text/javascript" src="webcam.js"></script>
<script type="text/javascript">
//Configurando o arquivo que vai receber a imagem
webcam.set_api_url('upload.php');

//Setando a qualidade da imagem (1 - 100)
webcam.set_quality(90);

//Habilitando o som de click
webcam.set_shutter_sound(true);

//Definindo a função que será chamada após o termino do processo
webcam.set_hook('onComplete', 'my_completion_handler');

//Função para tirar snapshot
function take_snapshot() {
document.getElementById('upload_results').innerHTML = '<h1>Uploading...</h1>';
webcam.snap();
}

//Função callback que será chamada após o final do processo
function my_completion_handler(msg) {
if (msg.match(/(http\:\/\/\S+)/)) {
var htmlResult = '<h1>Upload Successful!</h1>';
htmlResult += '<img src="'+msg+'" />';
document.getElementById('upload_results').innerHTML = htmlResult;
webcam.reset();
}
else {
alert("PHP Erro: " + msg);
}
}
</script>
</head>
<body>
<script type="text/javascript">
//Instanciando a webcam. O tamanho pode ser alterado
document.write(webcam.get_html(320, 240));
</script>
<form>
<input type=button value="Configurar" onClick="webcam.configure()">
&nbsp;&nbsp;
<input type=button value="Tirar Foto" onClick="take_snapshot()">
&nbsp;&nbsp;
<input type=button value="Reset" onClick="webcam.reset()">
</form>
<div id="upload_results"></div>
</body>
</html>

É basicamente composto por HTML e Javascript no qual vai instanciar a Webcam e habilitar algumas funcionalidades.

O PHP está no arquivo: upload.php

<?php
    session_start();

    $uploadDir = 'uploads';

    if(!is_dir($uploadDir)){
        if (!mkdir($structure, 0777, true)) {
            print "ERRO: Não foi possível criar o diretório [uploads]";
        }
    }

    if(!is_writable($uploadDir)){
        chmod($uploadDir, 0777);
    }

    $name = $uploadDir.'/image_'.date('YmdHis').'.jpg';
    $file = file_put_contents($name, file_get_contents('php://input'));
    if (!$file) {
        print "ERRO: Falha de escrita para o arquivo [$name], É necessário dar permissão de escrita na pasta [$uploadDir]\n";
        exit();
    }

    print 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$name;
?>

Este é o responsável por fazer o upload da imagem gerada e salvar na pasta definida na variável “$uploadDir”.

Vale lembrar que é preciso definir a permissão de escrita para a pasta definida. No caso do exemplo “uploads”.

Até (:

Share Button

PHP Blog está de cara nova

Completando 4 anos, o PHP Blog está de cara nova. Agora utilizando a robusta plataforma WordPress.

Confiram também a nossa página no Facebook e o nosso perfil no Twitter.

Usem e abusem ! (:

Share Button

Chat – Bate Papo utilizando PHP + jQuery Ajax

Download: Aqui

Faça então o download do código, execute o SQL para criação da tabela no Banco de Dados MySQL.
Vale lembrar de alterar as informações de conexão ao banco no arquivo: class/cChat.php

Seja Feliz ! (:

Share Button

Webservice para consulta de Endereço via CEP

Fonte: http://correiosapi.apphb.com/

Arquivo: http://www.phpblog.com.br/exemplos/cepwebservice/index.html

Falando apenas da parte que interessa, o $.ajax do jQuery faz a requisição para uma URL composta da URL do Webservice “http://correiosapi.apphb.com/cep/” + o CEP capturado do form.
Óbvio que pudemos chamar diretamente a URL e capturar os dados que retornam em formato XML.

Exemplo: http://correiosapi.apphb.com/cep/76873274

$("#btBuscar").click(function() {
    $("#results").html("Carregando...");
    //Tratamento SIMPLES do input
    var cepGet = $("#txtCep").val();
    cepGet = cepGet.replace('-', '');
    cepGet = cepGet.replace('.', '');

    //Chamada ao Webservice
    $.ajax({
        url: "http://correiosapi.apphb.com/cep/"+cepGet,
        dataType: "jsonp",
        crossDomain: true,
        contentType: "application/json",
        success: function(data) {
            $("#results").html("****** Resultado ******");
            $.each(data, function(index, obj) {
                $("#results").append(""+index+": "+obj+"
");
            });
        }
    });
});

Um de nossos leitores do antigo formato do blog também sugere um outro webservice que pode ser utilizado:

Junior Silva disse em 14/07/2013 às 18h58:
Olá, Outro webservice para ser utilizado para consulta de CEP: http://viacep.com.br/

Link: http://viacep.com.br/

Até mais! (:

Share Button

RedBeanPHP – Mapeamento de Objeto Relacional em PHP

Este post marca o reinício das atividades no PHPBlog. Andei um pouco afastado porém estou de volta.

O RedbeanPHP é uma ferramenta ORM (Object Relational Mapping – Mapeamento de Objeto Relacional)100% completa para auxiliar no desenvolvimento de aplicações WEB utilizando linguagem de programação PHP OO.

Projeto: http://redbeanphp.com/
Documentação: http://redbeanphp.com/manual/

Usem e abusem!

Share Button

Descompactando arquivos ZIP utilizando ZipArchive do PHP

Fonte de pesquisa: http://php.net/manual/en/book.zip.php

Vamos então ao arquivo index.php

$zip = new ZipArchive;
if($zip->open("arquivo.zip")) {
    $return   = $zip->extractTo("extraido");
    $zip->close();
    echo 'Arquivo Extraido com sucesso !!!';
} 
else {
    echo 'O arquivo não pode ser aberto.';
}

Neste exemplo simples, descompactamos o arquivo arquivo.zip e colocamos o arquivo extraído na pasta “extraido”.

Simples mais funcional. (:

Até!

Share Button

Criando captcha (imagem de segurança) utilizando PHP GD

Vamos então aos arquivos:

Arquivos: Aqui
Exemplo: Aqui

Com todos os arquivos em mãos vamos as explicações.

Arquivo: gera_captcha.php

//Definindo o formato do arquivo
header("Content-type: image/jpeg");
//Capturando o código passado via GET
$authCode = $_GET['code'];
//Criando a imagem 70x35 px
$imagem = imagecreate(70, 35);
//Definindo a cor de fundo da imagem
$fundo = imagecolorallocate($imagem, 242, 242, 236);
//Definindo a cor da fonte
$fonte = imagecolorallocate($imagem, 0, 0, 0);
//Gerando imagem
imagestring($imagem, 10, 10, 10, $authCode, $fonte);
//Renderizando a imagem
imagepng($imagem);

Este é o aquivo que vai criar efetivamente a imagem de acordo com o código passado por parâmentro.
Para exibição, vamos ao outro arquivo.

Arquivo: index.php

$code = rand(100000,999999);

No arquivo acima, geraremos um código randômico e passaremos como parâmetro no “src” da imagem.

<img src="gera_captcha.php?code=<?=$code ?>" />

Este é um exemplo simples que ajuda a entender o funcionamento desse modelo de segurança altamente utilizado em formulários web.

Até!

Share Button