Arquivo da tag: PHP

Undefined property: stdClass::($variablename)

Ao desenvolver um código utilizando a biblioteca PDO do PHP, me deparei com a seguinte mensagem de erro ao realizar uma iteração no resultado de uma consulta:

Notice: Undefined property: stdClass::$ds_nomeServidor in C:\xampp\htdocs\script.php on line 6127

O problema é que a consulta estava trazendo realmente o campo “ds_nomeServidor”. Contudo, ele era um campo nomeado utilizando o comando “AS” (Alias).

O problema acontece pois o PDO retorna o nome dos campos Alias todos em minúscula (lower case) e por esse motivo não encontrava o campo na consulta. Para solucionar, no momento de utilizar o campo, coloquei-o apenas com letras em minúscula e tudo passou a funcionar perfeitamente:

<?php
    echo $lobj_recordsetRow->ds_nomeservidor
?>

Se tiver dúvida de qual o nome que está sendo retornado em um recordset pelo PDO, utilize o código abaixo para listar todos:

<?php
    print "<pre>"; var_dump( $lobj_recordsetRow); exit;
?>

How to remove URL Anchor (Fragment) using PHP?

The best option is using the parse_url() function:

function removeURLFragment($pstr_urlAddress = '') {
    $larr_urlAddress = parse_url ( $pstr_urlAddress );
    return $larr_urlAddress['scheme'].'://'.(isset($larr_urlAddress['user']) ? $larr_urlAddress['user'].':'.''.$larr_urlAddress['pass'].'@' : '').$larr_urlAddress['host'].(isset($larr_urlAddress['port']) ? ':'.$larr_urlAddress['port'] : '').$larr_urlAddress['path'].(isset($larr_urlAddress['query']) ? '?'.$larr_urlAddress['query'] : '');
}

I think this is way better, since the knowledge of the structure of the URL is encapsulated. Chances are pretty large than using regexes or string manipulation, one will forget some scenario’s whereas dedicated methods are more reliable.

Analisando cada item de uma URL utilizando PHP

O PHP tem um função para analisar cada item de uma URL, ela se chama parse_url:

$larr_urlAddress = parse_url ( "http://meuusuario:minhasenha@www.google.com:88/dashboard/file.php?q=busca#item2" );

A função irá criar um array cujas informações poderão ser acessadas da seguinte forma:

echo "<BR>Scheme: ".$larr_urlAddress['scheme']; // No exemplo, retornará o valor http
echo "<BR>Host: ".$larr_urlAddress['host']; // No exemplo, retornará o valor www.google.com
echo "<BR>Port: ".$larr_urlAddress['port']; // No exemplo, retornará o valor 88
echo "<BR>User: ".$larr_urlAddress['user']; // No exemplo, retornará o valor meuusuario
echo "<BR>Password: ".$larr_urlAddress['pass']; //No exemplo, retornará o valor minhasenha
echo "<BR>Path: ".$larr_urlAddress['path']; // No exemplo, retornará o valor /dashboard/file.php
echo "<BR>Query: ".$larr_urlAddress['query']; // No exemplo, retornará o valor q=busca
echo "<BR>Fragment: ".$larr_urlAddress['fragment']; // No exemplo, retornará o valor item2

Como imprimir o conteúdo de um array em HTML utilizando PHP

Se você quiser ver o conteúdo de um array isso pode ser feito através do comando “print_r”, mas o conteúdo aparece sem formatação no HTML obrigando a visualizar o conteúdo do código fonte da página para visualizar a estrutura formatada do Array.

Mas é possível visualizar de forma direta, basta utilizar o código abaixo:

echo "<pre>".htmlentities( print_r($Array, true) )."</pre>";

O conteúdo do Array será visto como o exemplo abaixo, sem precisar apelar para o truque de visualizar o código fonte.

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 0
        )

    [1] => Array
        (
            [0] => 0
            [1] => 1
        )
)

Como instalar a extensão php-xml no PHP 7.x em ambiente Linux Ubuntu?

Ao tentar instalar o PHPBB em meu servidor, me deparei com a seguinte mensagem:

PHP XML/DOM support
In order for phpBB to function correctly, the PHP XML/DOM extension needs to be available.

Como fazer para instalar a biblioteca mencionada na mensagem acima? Execute o comando para instalar o módulo:

sudo apt-get install php7.0-xml

Agora atualize o Apache:

sudo /etc/init.d/apache2 restart

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)
?>