проблема при изменении переменной окружения в PHP
Установил php через xampp, и мне нужно изменить эту переменную:
NSL_LANG.
я Создал файл php с помощью этого кода:
<?php
putenv("NLS_LANG=BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252") or die("Falha ao inserir a variavel de ambiente");
phpinfo();
?>
, Но когда я открываю эту страницу он показывает, как на изображении.
Мне нужно изменить эту переменную среды для этой функции. - Кто знает, как сделать это?
1 answers
Я Думаю, что по времени выполнения, это не будет работать, это потому, что при запуске putenv
Oracle клиент уже работает, и если я не ошибаюсь, связи PHP с Oracle клиент-это "параллельный", и не в том же "контексте", то есть использовать putenv
не будет влиять на процесс клиента oracle.
То, что вы можете сделать, это вручную добавить в windows, сделайте это:
Компьютер > Свойства > дополнительные Параметры система
Появится окно, похожее на это:
Затем нажмите новости переменные среды, а затем Новый..., а не
, Если использовать клиент oracle на несколько пользователей используйте variaveis de sistema
(предпочтительнее), если использовать только на текущего пользователя, и вы действительно хотите ограничить это, затем выберите "новый", "новости переменные пользователя ".
В поле " имя переменную добавьте NLS_LANG
В поле значение переменной добавить BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252
После этого может потребоваться ВЫЙТИ из системы или даже перезагрузить Windows.
, Используя Apache и PHP
Обратите Внимание, что применять NLS_LANG=BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252
будет влиять только клиент oracle, это не повлияет на Api-интерфейсы на базе PHP или Apache, поскольку charset apache так же, как и вход, который поставляется forms или даже как он спас сценарии .php
могут быть в одной кодировки в другую.
BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252
аналог windows-1252, которая эквивалентна iso-8859-1, и, как я объяснил в этом ответе https://pt.stackoverflow.com/a/43205/3635, вы должны использовать:
- PHP скрипты, сохраненные в "iso-8859-1" (или windows-1252 и ANSI)
- Желательно установить с помощью PHP
header('Content-type: text/html; charset=iso-8859-1');
Сначала необходимо сохранить", все сценарии .php" iso-8859-1 (или ANSI) и документы .html (если есть):
Примечание: я считаю, что не требуется установить
oci_connect
charset, поскольку оно уже предполагает, что кодировка определяетсяNSLANG
, но разве он не работает попробуйте так:$db = ocilogon($user, $pass, $connectString, 'WE8MSWIN1252');