Mostrando postagens com marcador PHP. Mostrar todas as postagens
Mostrando postagens com marcador PHP. Mostrar todas as postagens

Pegar próximos aniversários em PHP

Olá!

Essa noite estive fazendo um simples script PHP pra listar os próximos aniversariantes, mas me deparei com alguns desafios no tratamento de datas e cuidados com virada de ano etc, então como não achei nada semelhante na internet tive que improvisar e criar a solução que compartilho aqui.

Dei uma simplificada aqui no código pra explicar a ideia, segue:




Dúvidas ou sugestões postem comentários! Abraços!

Solução para conectar com SQL Server no Linux (mssql)

Hoje estive pesquisando sobre isso, para fazer um site em PHP no linux acessar banco de dados Microsoft SQL Server.

No meu caso, o servidor de banco de dados tem Windows Server 2012 com SQL Server 2012, o o servidor que terá o site PHP é um Ubuntu Server 14.04 64bits.

Na instalação do servidor Ubuntu, marquei pra deixar instalado LAMP apenas, depois, executei o seguinte comando para habilitar conexão com banco sql server:
apt-get install php-mssql php-sybase

E depois, configurei o arquivo config/database.php do CodeIgniter da seguite forma:

$db['default']['hostname'] = '172.16.***.***';
$db['default']['username'] = 'USUARIO';
$db['default']['password'] = 'SENHA';
$db['default']['database'] = 'BANCO';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

Atenção para o driver, mssql, e colocar o pconnect para FALSE.

Remover index.php Code Igniter Etc

Olá, espero com este post auxiliar iniciantes em Code Igniter a remover o index.php da url de seus sites, com os passos que segui para resolver na minha máquina.

Primeiro segui os passos do blog TIDoc, criação do .htaccess e ajustes no config.php do CI. Quase deu certo, sigam eles também:

1. Habilitar o ModRewrite no Apache

Abra o httpd.conf e descomente a linha LoadModule rewrite_module modules/mod_rewrite.so e reinicie o apache.

No meu caso, Ubuntu 13.04, fiz isso através dos seguintes comandos, inspirado pelo posto do Tiago Passos:
 

2.  htaccess

Crie um .htaccess na raiz do seu projeto. O arquivo deve estar no mesmo nível da pasta system.

Muita atenção com as barras (/). A maioria das dicas e tutoriais que você vai encontrar por ai leva em conta que seu projeto está no document root e não em um alias (diretório virtual). Se você estiver usando um diretório virtual use o RewriteBase para indicar qual a url base de seu projeto e em RewriteRule remova a barra da frente de index.php para indicar que o arquivo não está na raiz do servidor (document root) e sim no diretório virtual.


3. config.php

É necessário alterar uma linha do config.php na pasta application. 
Altere a linha $config['index_page'] = "index.php" para $config['index_page'] = "".

Bom, teoricamente você terminou aqui. No meu caso aconteceram dois problemas, primeiro que nas configurações do meu diretório virtual não estava permitindo executar as regras, então executei o seguinte comendo para abrir o arquivo de configurações:

E alterei as configurações para permitir as regras do .htaccess, trocando AllowOverride "none" por "All":

    <Directory /home/bolivar/sites/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>


No final das contas, após reiniciar o Apache, quebrou todos os links para CSS, JS imagens etc, consegui resolver adicionando a seguinte linha no .htaccess

RewriteRule ^assets/ - [L,NC]

Então meu arquivo .htaccess final ficou assim:

Com isso, consegui resolver na minha máquina local, agora ainda preciso ver se vai funcionar no servidor do cliente...

Documentação sobre .htaccess, RewriteRules e outras inspirações:
1 - http://httpd.apache.org/docs/2.2/howto/htaccess.html
2 - http://httpd.apache.org/docs/current/mod/mod_rewrite.html
3 - http://httpd.apache.org/docs/current/rewrite/intro.html
4 - http://tidoc.wordpress.com/2009/08/12/codeigniter-remover-index-php-da-url/
5 - http://blog.tiagopassos.com/2011/04/21/configurando-o-mod_rewrite-do-apache2-no-ubuntu-linux/

E recomendo também as video aulas em:
1 - http://net.tutsplus.com/sessions/codeigniter-from-scratch/

Adicionando Curtir Compartilhar Facebook Twitter

Para adicionar botão de compartilhar do twitter no seu site, basta acessar:

http://twitter.com/about/resources/tweetbutton

Lá você encontrará as opções para criar seu botão, de maneira bastante fácil, no final ele gera um código pra adicionar no seu site tipo este:



E o resultado será algo assim:

Para colocar botão de Curtir do Facebook pode usar o seguinte código PHP:


Perceba a função curPageURL() concatenada no código do iframe do facebook. Encontrei este código na Internet, neste endereço http://www.webcheatsheet.com/PHP/get_current_page_url.php

O resultado do Like Facebook será algo assim:

Encoding Codificação Retorno PagSeguro

O pagSeguro é um dos sistemas de pagamentos mais conhecidos e utilizados em e-commerces, mas sua documentação deixa a desejar um pouco, ainda assim, existem muitas boas pessoas na Web com diversos tutoriais, espero poder contribuir um pouco também. Este post já havia sido publicado no phpoo.com.br, mas estou desativando aquele e salvando aqui.

Um problema bem comum (eu imagino) é problema com codificação, que precisa ser ISO-8859-1.

Até no exemplo de página de retorno a primeira coisa que é feita no PHP é:

header('Content-Type: text/html; charset=ISO-8859-1');

Mas se você estiver com seu banco de dados em UTF-8, por exemplo, e suas páginas todas são UTF-8, primeiro você vai ter que dizer ao pagSeguro isso, o que pode ser feito adicionando essa informação na função de inicialização do pagSeguro em PHP que está disponível nos exemplos do site mesmo, a função ficá assim:

function pgs($args = array()) 
{
    if ('array'!=gettype($args)) $args=array();
    $default = array(
      'email_cobranca'  => 'seuemail@pagseguro.com.br',
      'tipo'            => 'CP',
      'moeda'           => 'BRL',
      'encoding'        => 'UTF-8',
    );
    $this->_config = $args+$default;
}

Com isso o pagSeguro sabe que você está enviando as informações no carrinho, dados do cliente e do produto em formato UTF-8, mas, quando ele te responder na página de retorno as informações virão em ISO-8859-1 igual... como resolver, depois de muita pesquisa, uma solução simples encontrei, basta fazer o seguinte:

mb_convert_encoding($_POST['CliNome'], 'UTF-8', 'ISO-8859-1,ASCII,UTF-8');

Faça isso para todos os campos String que vierem no post do pagSeguro e pronto. Campos com acentos e outros tantos serão salvos no banco de dados corretamente, sem isso, quando vinha uma cidade com nome 'Três de Maio', por exemplo, na minha base dedados MySQL estava salvando apenas 'Tr', os dados depois de qualquer acento eram perdidos.

Tem mais algumas informações úteis sobre este retorno que são abordadas pelo Dourado no site dele: http://dourado.net/2011/06/09/retorno-automatico-de-dados-do-pagseguro-em-phpmysql-com-produtos-versao-2-0/

Boa sorte pra quem for implementar!  Aproveitando o post, se você ainda não é cadastrado no PagSeguro, clique aqui ou na imagem abaixo para se cadastrar.

Configurando diretórios httpd.conf Alias Apache 2.x

Após instalar os softwares na sua máquina como Apache, PHP, MySQL e alguma IDE como Netbeans ou Eclipse, muitos tem dificuldades em alterar algumas configurações do Apache, antigamente quando aprendi configurar isso o Apache estava sei lá em qual versão e após muito tempo sem usar essa semana eu também fiquei um pouco perdido, pois o arquivo httpd.conf que eu constumava alterar estava vazio.

Bom, dei uma olhada nos outros arquivos e vi que isso foi feito apenas por questões de organização e pra evitar que nós façamos alguns charques e alterar o que não devemos alterar, basicamente este arquivo está sendo incluído dentro de outro agora.

Em resumo, você faz a mesma coisa que antigamente, pra dizer ao apache que quando você acessar "http://localhost/netbeans" ele deve pegar os arquivos lá em "/home/bolivar/NetBeansProjects/" você escreve dentro do arquivo /etc/apache2/httpd.conf o tal do Alias conforme o exemplo abaixo, precisa ser root.

Pra abrir o arquivo com root, abra o terminal.

Poder de root
sudo su

Editar arquivo no gedit
gedit /etc/apache2/httpd.conf

Agora crie o alias pelo gedit, moleza né!
Alias /netbeans/ "/home/bolivar/NetBeansProjects/"

< Directory "/home/bolivar/NetBeansProjects">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</ Directory>

Cuidado, tira o espaço no < Directory ... e ao fechar a tag </ Directory>, tive que colocar espaço para aparecer no blog... Bom. pra que esta mudança faça efeito reinicie o Apache, os comandos são (Ubuntu/Mint):

Reiniciar
/etc/init.d/apache2 restart

Também pode desligar/ligar, dá no mesmo
/etc/init.d/apache2 stop
/etc/init.d/apache2 start

Agora ao digitar "http://localhost/netbeans" seu navegador vai exibir os diretórios com seus projetos do Netbeans.

Quando você criar um novo projeto PHP no Netbeans já configure ele pro caminho certo, na Project URL adicione após o localhost o alias/apelido que você botou no apache,, ai quando você rodar o site (F6 no NetBeans) ele já vai rodar certinho, olha o print abaixo.


Sobre o arquivo httpd.conf, se você estiver usando Windows acredito que precisa inverter as barras (/), usa contra barra (\). Qualquer coisa comentem ai.

Processamento Linguagem Natural com PHP

Palestra do Ivo Nascimento na Latinoware sobre processamento de linguagem natural no PHP, isto não existe, e seu projeto de criar algo semelhante com nltk.org (Python?), no github.com/iannsp/texta, o Text Analizer.

TF-IDF: Term Frequency - Inverse Document Frequency: calcula a importância de um termo em um texto.
 - Tokenizacão: no PHP seria um explode, guarda um array
 - Normalizacao: correcão portugues, maiúsculas e minúsculas, ...
 - Stop-words: e, de, mas, o, a .... tirar palavras que não interessam
 - Aprendizado: % das palavras positivas vs negativas

#Hashtags: semântica

N-GRAM: Conjuntos de termos, tokens. Bigram, Trigram, ...
  - Análise: Filtro Bayesiano, Coef. Dice, Qui-quadrado, Coeficiente de Jaccard, coef. Relacão Pearson, Distância Euclidiana...

Last.fm e Grooveshark usam algumas dessas fórmulas matemáticas como Pearson e Dist. Euclidiana para identificar as pessoas semelhantes e sugerir as músicas que elas gostaram uma para outra.

Problemas! Homógrafos, como: Quem casa quer casa... A mesma palavra com sentidos diferentes.

Ele sugeriu o PIP, Python em PHP caso queira usar PHP com o NLTK, também ficou de levantar os slides no slideshare.net/ivonascimento, vamos aguardar.

APACHE, MYSQL, PHP, PHPMYADMIN e ECLIPSE NO UBUNTU

Breve tutorial da instalação e configuração do Ubuntu para programar com PHP, realizando estes simples passos já é possível iniciar a programar.

1. Atualizar o sistema operacional
apt-get update
apt-get upgrade

2. Instalar Apache/Mysql/PHP
aptitude install apache2 mysql-server-5.0 php5 php5-mysql php5-cli -y
--durante a instalação será necessário definir uma senha para o Mysql.

3. Ir ao diretório virtual
cd /var/www/

4. Criar pagina de teste
vi teste.php

5. Pressione 'i' para poder digitar no vi e adicione o seguinte código
< ? php
      phpinfo();
? > 

6. Pressione ESC e digite ':wq' para salvar e fechar o vi

7. Instalar PhpMyAdmin
aptitude install phpmyadmin

8. Copiar o diretório do phpmyadmin para dentro de /var/www
cp -r /usr/share/phpmyadmin/ /var/www/phpmyadmin
8. Para acessar no seguinte endereço, http://localhost/phpmyadmin, precisa fazer o seguinte:
sudo gedit /etc/apache2/apache2.conf
add esta linha no final do arquivo ou onde desejar
Include /etc/phpmyadmin/apache.conf
e então reiniciar o apache.
/etc/init.d/apache2 restart
Fonte: http://askubuntu.com/questions/19127/how-to-access-phpmyadmin-after-installation


9. Reinicie

10. Abra o navegador e acesse 'http://localhost/' para verificar o funcionamento do apache, depois 'http://localhost/teste.php' para ver as configurações do PHP e depois 'http://localhost/phpmyadmin' para gerenciar facilmente suas bases de dados no Mysql.

11. Baixe o eclipse aqui.

12. Descompacte ele dentro de algum diretório, recomendo /usr/local/

13. Crie um atalho para o Eclipse na Área de Trabalho:
13.1 Clique com o botão direito do mouse e escolha Criar lançador…;
13.2 No campo Nome, digite: Eclipse;
13.3 no campo Comando, digite: /usr/local/eclipse/eclipse
13.4 Clique em OK;

14. Duplo clique no atalho para abrir.

Obs.: É necessário ter JVM instalado para rodar o Eclipse.

Até.

Dicas daqui e daqui.