Arquivo da categoria: PHP

Como saber o dia, mês, ou o ano de uma data específica usando PHP?

Este código permite ajustar qual o formato de entrada utilizando a mascara ‘d/m/Y’:

<?
echo DateTime::createFromFormat('d/m/Y', '25/12/2016')->format('d'); // Dia
echo DateTime::createFromFormat('d/m/Y', '25/12/2016')->format('m'); // Mês
echo DateTime::createFromFormat('d/m/Y', '25/12/2016')->format('Y'); // Ano (4 digitos)
?>
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como saber se um determinado ano é bissexto utilizando o PHP?

Existem muitas soluções na Internet para esse problema, mas você sabia que existe uma solução nativa da própria linguagem? Continue lendo

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como importar o arquivo de resultados da Mega Sena utilizando o PHP

A Caixa libera um arquivo HTML contendo todos os jogos e números sorteados, mas como fazer para utilizá-lo em seu aplicativo? Continue lendo

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Qual a forma correta de inserir uma quebra de linha seguindo o padrão ASCII? (“\r\n” ou “\n\r”)

Utilize o “\r\n”.

Atenção: A partir da versão 5.0.2, o PHP passou a fornecer a constante PHP_EOL para representar o fim de linha. Que pode ser utilizado da seguinte forma:

<? echo 'Linha 1'.PHP_EOL.'Linha 2'; ?>
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:xampphtdocscode.php on line XXX

Este problema na maioria das vezes é causado por uma consulta incorreto, desta forma ela não está podendo retornar dados e montar o recordset.

Imprima a consulta que você está tentando realizar e execute-a no banco de dados através de um aplicativo como o phpMyAdmin, HeidiSQL, etc.

No meu caso, o erro da consulta foi a falta de uma virgula entre os campos que eu estava tentando consultar (d.Code e d.Title):


SELECT
d.Code
d.Title
FROM
document d
INNER JOIN project p ON (d.ProjectID = p.ID)
WHERE
p.Code = 'cf23df2207d99a74fbe169e3eba035e633b65d94'
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:xampphtdocscode.php on line XXX

Este problema na maioria das vezes é causado por uma consulta incorreto, desta forma ela não está podendo retornar dados e montar o recordset.

Imprima a consulta que você está tentando realizar e execute-a no banco de dados através de um aplicativo como o phpMyAdmin, HeidiSQL, etc.

No meu caso, o erro da consulta foi a falta de uma virgula entre os campos que eu estava tentando consultar (d.Code e d.Title):


SELECT
d.Code
d.Title
FROM
document d
INNER JOIN project p ON (d.ProjectID = p.ID)
WHERE
p.Code = 'cf23df2207d99a74fbe169e3eba035e633b65d94'
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Removendo espaços múltiplos e substituindo por um espaço simples no PHP

A expressão regular localizará um espaço (s) ou mais (+) e a função substituirá isso por um único espaço:


echo preg_replace('!s+!', ' ', 'Esta é a Minha Mensagem com espaços múltiplos');
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como habilitar o uso de Tags curtas do PHP? Utilizando “

O que são tags curtas no PHP? É a possibilidade de iniciar um código php utilizando  “<?” ao invés de “<?php”.

Como habilitar este recurso?

Edite o arquivo php.ini, e atribua o valor ON ao atributo abaixo:


short_open_tag=On

Reinicie o servidor web.

OBS: Se não funcionar, é provável que em outrou local do php.ini exista o código short_open_tag=Off desabilitando as tags curtas. Faça uma pesquisa em todo arquivo para verificar.

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Required_Once vs Call to undefined function

Ao tentar utilizar um script PHP em um novo servidor Apache + PHP, ele não conseguia utilizar uma função que estava incluída em um outro arquivo PHP.

require_once ‘./System/Functions/DB/DB_openDatabase.fnc.php’;

informava o seguinte erro:

Fatal error: Call to undefined function DB_openDatabase() in C:xampphtdocs1.php on line 35

O problema é que o servidor não estava configurado para aceitar Short Open Tags (<? ?>), e considerava scripts PHP apenas os iniciados pelos tags (<?php ?>). Como todos meus scripts são iniciados pela forma curta, acontecia o erro.

Para resolver este problema, adicione ao PHP.INI o comando “short_open_tag = on”

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Comando num_rows do MySQLi (prepared statement) retorna apenas o valor 0

Continuando os meus trabalhos de conversão de um código que utilizava a conexão MySQl para a conexão MySQLi encontrei um novo problema: o comando num_rows sempre retornava o valor 0, mesmo nas consultas em que eu sabia que traziam mais resultados:

$lobj_mysqliQuery = $pobj_DBObject->stmt_init();
$lobj_mysqliQuery->prepare("SELECT id FROM usuario WHERE nome like ?");
$lobj_mysqliQuery->bind_param("s", $plstr_usuarioNome);
$lobj_mysqliQuery->execute();

$llng_usuarioQuantidade = $lobj_mysqliQuery->num_rows;

Bem, onde estava o erro? Aparentemente (novamente) estava tudo correto. Porém, o MySQLi tem uma forma diferente de ver a vida…:)

O erro estava na ausência da utilização do comando store_result(). Que, segundo o manual do PHP, serve para transferir o resultado da última consulta (Resultset) para a variável desejada. Assim, como não havíamos executado este comando, era como se estivéssemos tentando pegar o número de linhas de um ResultSet vazio.

o código final ficou assim, e funcionou:

$lobj_mysqliQuery = $pobj_DBObject->stmt_init();
$lobj_mysqliQuery->prepare("SELECT id FROM usuario WHERE nome like ?");
$lobj_mysqliQuery->bind_param("s", $plstr_usuarioNome);
$lobj_mysqliQuery->execute();
$lobj_mysqliQuery->store_result();

$llng_usuarioQuantidade = $lobj_mysqliQuery->num_rows;

* Observação: Nestes exemplos estão ocultos os comandos responsáveis por abrir e fechar a conexão com o banco de dados.

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).