Arquivo da categoria: PHP

Como obter informações do CNPJ utilizando Webservice usando PHP?

É possível obter os dados atualizados consultando a base de dados da receita federal, mas o SERPRO compra muito caro; Assim, é melhor utilizar o serviço de terceiros que fazem o cacheamento e vendem mais barato o acesso. Neste artigo iremos consultar os dados utilizando o serviço ReceitaWS. Continue lendo

Como utilizar o Google Translate usando PHP

1) instale o Composer em sua máquina;
2) Utilizando a linha de comando do Windows (cmd), vá até a pasta raiz do seu projeto e digite o comando: composer require google/cloud-translate
3) Crie uma conta de serviço:

3.1) Acesse o link: https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts
3.2) Selecione o projeto
3.3) clique no botão “Criar conta de serviço”
3.4) Preencha o nome da sua conta e selecione em papel o item “Projeto > Proprietário”
3.5) Marque o item: “Fornecer uma nova chave privada”
3.6) deixe o tipo de chave como “json” e clique no botão criar.
3.7) Será criada a conta e o navegador fará o download de um arquivo json. Adicione este arquivo a raiz de seu projeto.

4) Adicione a linha abaixo a configuração do apache, com o endereço correto onde foi colocado o arquivo json: SetEnv GOOGLE_APPLICATION_CREDENTIALS C:\xampp\htdocs\projeto.json
5) Reinicie o apache.

Salve o código como index.php na raiz de seu projeto, modificando apenas o valor do ProjectID para o seu valor. Caso vc não saiba o ID de seu projeto, visite a página https://console.cloud.google.com/iam-admin/settings e verifique o nome do campo “Código do Projeto”:

<?
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Translate\TranslateClient;

# Your Google Cloud Platform project ID
$projectId = 'IDDoSeuProjet';

# Instantiates a client
$translate = new TranslateClient([
    'projectId' => $projectId
]);

# The text to translate
$text = 'Hello, world!';
# The target language
$target = 'pt-BR';

# Translates some text into Brazilian Protuguese
$translation = $translate->translate($text, [
    'target' => $target
]);

echo 'Text: ' . $text . '
Translation: ' . $translation['text'];
?>

abra a página no navegador e veja o resultado: Text: Hello, world! Translation: Olá Mundo!

Para mais informações visite a página do Google: https://cloud.google.com/translate/docs/reference/libraries#client-libraries-install-php

Como adicionar múltiplas linhas de cabeçalho em uma requisição do cURL no PHP?

Como fazer para adicionar múltiplos itens a um cabeçalho de requisição HTTP enviada pelo cURL? Utilize a opção CURLOPT_HTTPHEADER e passe como parâmetro um Array():

<?
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data', 'X-Requested-With: XMLHttpRequest'));
?>

Exemplo de código de requisição POST, enviando os dados de usuário e senha:


    $postfields = array();
    $postfields['usuario'] = $lstr_formUsuario;
    $postfields['senha'] = $pstr_formSenha;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data', 'X-Requested-With: XMLHttpRequest') );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__). '/cookie.txt');

    echo curl_exec($ch);

Como forçar o PHP a exibir as mensagens de erro?

Fui transferir o código da minha máquina para o servidor de produção e por algum motivo o código não funcionava, simplesmente parava de funcionar. Meia hora depois lembrei que as mensagens de erro poderiam estar configuradas para não aparecer. Mas como reverter essa opção? Como fazer via script que as mensagens fossem exibidas? Continue lendo

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