Configurações de localidade que não são do sistema

Descarregar o driver PHP

Esta secção aplica-se apenas a utilizadores de Linux e macOS, em particular aqueles que lidam com mais do que uma localização nas suas aplicações php.

Por defeito, os Microsoft Drivers for PHP para SQL Server utilizam a variável de ambiente LC_ALL definida no sistema e sobrepõem-se a todas as outras LC_xxx categorias (talvez exceto $LANG ou $LANGUAGE sob certas circunstâncias), afetando o separador de milhares, caráter de ponto decimal, conjunto de caracteres, mês, nomes dos dias, mensagens da aplicação, incluindo mensagens de erro, símbolo de moeda, etc.

A partir da versão 5.8.0, os utilizadores podem configurar as definições de localização usando o ficheiro php.ini, como mostrado nos exemplos abaixo.

Definir a informação local usando o driver SQLSRV

Adicione o seguinte no final do seu ficheiro de php.ini:

[sqlsrv]  
sqlsrv.SetLocaleInfo = <option>

Definir a informação local usando o PDO_SQLSRV Driver

Adicione o seguinte no final do seu ficheiro de php.ini:

[pdo_sqlsrv]  
pdo_sqlsrv.set_locale_info = <option>

A opção pode ser um dos seguintes valores:

Opção Descrição do comportamento
0 O condutor ignora as definições de localização do sistema.
1 O driver lê a variável LC_CTYPE.
2 O driver lê a variável LC_ALL (esta é a predefinida).

A LC_CTYPE categoria determina as regras de tratamento de caracteres, que regem a interpretação de sequências de bytes de caracteres de dados de texto, a classificação dos caracteres e o comportamento das classes de caracteres. Controla o reconhecimento de maiúsculas e minúsculas, caracteres alfabéticos e não alfabéticos, e assim sucessivamente.

Explanation

  1. Opção 0 -- usa isto quando não quiseres alterar a localização da aplicação.

  2. Opção 1 -- usar isto para definir apenas o valor do sistema de LC_CTYPE sem afetar as outras LC_xxx categorias.

  3. Opção 2 — usar LC_ALL para substituir todas as categorias LC_xxx, afetando a aplicação PHP e as suas extensões.

Se a localização de qualquer script php não for igual à do sistema, pode ser necessário especificar a localização no(s) script(s) php chamando a função incorporada setlocale.

Por exemplo, se o padrão do sistema for en_US.UTF-8 mas o script PHP usar de_DE.UTF-8, então chamar a função PHP setlocale() de forma apropriada.

Para a Opção 2, indica a localização desejada nos teus scripts php apenas se for diferente da LC_ALL variável.

Observação

Se nada estiver definido em php.ini, o padrão atual é sobrepor todas as outras definições de localização com base em LC_ALL, que serão descontinuadas. Num futuro próximo, o padrão será ignorar as definições de localização do sistema. Assim, os utilizadores terão de modificar o ficheiro php.ini em conformidade se quiserem manter o comportamento atual.

Se os drivers sqlsrv e pdo_sqlsrv estiverem ativados, não é recomendado definir opções diferentes para os dois drivers.