Как я могу проверить, был ли PHP скомпилирован с версией UNICODE API Win32?

Попытайтесь заменить auto с _netdev в опциях в /etc/fstab - это должно заставить монтирование ожидать, пока сеть не произошла.

10
задан 23 May 2017 в 14:33
4 ответа

Я полагаю, вы захотите проверить, был ли PHP скомпилирован с mbstring (или установлен и включен модуль mbstring, если вы используете модули). Включение этого расширения должно решить ваши проблемы. Эта страница должна рассказать вам все, что вам нужно знать, чтобы заставить ее работать.

1
ответ дан 2 December 2019 в 22:12

Вот код, над которым я работал, чтобы решить проблему mbstring , с которой я столкнулся. В итоге я перебирал все комбинации кодировок и опций, пока одна из них не представила нужный мне результат. Я чувствую, что такая процедура может помочь вам найти ответ, который вы ищете.

Не полагайтесь на документацию , так как в моем случае результаты были не такими, как я думал, что варианты и кодировки будут делать. Я помню, что в ходе тестирования я получал прямоугольники,? И такие вещи, как A ~. Мое тестирование было точно таким же, как ваше, print_r информация. В моем случае мой скрипт импортирует информацию о покупателях и продажах в Quickbooks, который не поддерживает UTF-8. (Либо сам QB не может, либо драйвер QODBC не может) Тильды, могилы и умлаты исключены.

2
ответ дан 2 December 2019 в 22:12

It seems as though this question has been out there for a while and whether or not php was compiled with unicode flags does not affect it's unicode support, but if you need to determine whether a given PE image was likely compiled against the Unicode version of the Windows API, you can use dumpbin to examine the kernel32.dll imports used. This is not exactly something I would do pragmatically, but in a pinch, could work for diagnostics.

For example, a Unicode executable could list:

               4C CreateFileMappingW
               45 CreateDirectoryW
               33 CompareStringW
              12E GetCurrentDirectoryW
               AF ExpandEnvironmentStringsW
              2F0 SetFileAttributesW

noting the number of functions ending in W, aka Wide for unicode characters.

For a ANSI executable or DLL, you may see something closer to:

              30A SetCurrentDirectoryA
              15E GetFileAttributesA
              171 GetLastError
               4B CreateDirectoryA
              319 SetFileAttributesA

with most of the functions ending in A, we can see the executable was most likely compiled with ANSI flags.

2
ответ дан 2 December 2019 в 22:12

Я думаю, вам следует загрузить официальный двоичный файл из PHP репозитория Windows и установите его (обратите внимание на путь установки).

После этого вам нужно будет настроить apache для использования нового двоичного файла вместо того, который он несет по умолчанию. Это просто:

  • Найдите файл httpd.conf в папке WAMP (что-то вроде C: \ wamp \ bin \ apache \ ApacheXXX \ conf \ httpd.conf) - это может быть также можно использовать значок в трее.

  • Хорошо, теперь, когда вы нашли его, найдите строку, соответствующую LoadModule php5_module

  • Хорошо, просто замените эту строку своим новым php5_module , который, вероятно, находится в c : / php / php5apache2_2. dll (вы сохранили путь установки!). Результатом является что-то вроде LoadModule php5_module "c: /php/php5apache2_2.dll"

Вуаля. Перезагрузите wamp-сервер и протестируйте свое приложение с помощью последней версии сборки php специально для Windows.

Я не уверен, что это решит вашу проблему, но, безусловно, это реальный путь. Если у вас возникли проблемы с настройкой php, прочтите эту статью .

Удачи!

3
ответ дан 2 December 2019 в 22:12

Теги

Похожие вопросы