Arquivo da tag: PHP

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 criar um servidor web LEMP (Linux, NginX, MySQL, PHP) no Google Cloud (Google Compute Engine)

Este tutorial tem como o objetivo ensinar todos os passos para que o usuário possa criar seu servidor Web a um baixo custo na plataforma Google Cloud. Continue lendo

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

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.