PHP и COM объект возвращает битый параметр массива только в 1 месте Создаем com объект в php. Все работает гладко. $obj = new COM("blablabla.blala");
if ($obj ->Init()) {
$result = $obj ->Recognize('C:/1.jpg'");
}

$result если разложить мы увидим это:aaa[]:
0: [фамилия, Иванов]
0: "фамилия"
1: "Иванов"
1: [отчество, Борисович]
0: "отчество"
1: "Борисович"
2: "64" <-- Блин, что тут это за ерунда??? 64 в COM php?
3: [гражданство, рф]
0: "гражданство"
1: "рф"

Мы видим, что у второго индекса просто «64».
Делаем аналогично, подключаем этот же самый COM объект но не через php, а через Powershell. Результат получаем такой: aaa[]:
0: [фамилия, Иванов]
0: "фамилия"
1: "Иванов"
1: [отчество, Борисович]
0: "отчество"
1: "Борисович"
2: [Имя, Александр] <-- Все тут отлично!!
0: "Имя"
1: "Александр"
3: [гражданство, рф]
0: "гражданство"
1: "рф"

ТО есть все отлично через powershell. Как так происходит? Кодировка массива UTF16LE — не ужели массив бьется в php_com_dotnet.dll? Никакие игры с кодировками не помогают, бьется часть массива, что с этим делать вообще не представляю.

21 Авг 2019 в 07:09
202 +1
0
Ответы
1

В данной ситуации, возможно проблема связана с тем, что COM объект возвращающий ответ может не корректно обрабатывать данные при вызове из PHP. Возможно, есть различия в том, как PHP и Powershell обрабатывают ответ от COM объекта.

Для исправления этой проблемы, можно попробовать следующие шаги:

Проверить исходный код COM объекта и убедиться, что он корректно формирует и возвращает данные.Попробовать использовать другие методы или функции для вызова COM объекта в PHP.Проверить версии PHP и Powershell, возможно проблема связана с несовместимостью версий.Попробовать использовать другие форматы данных (например, JSON) для передачи и получения данных между PHP и COM объектом.

Если ничего из вышеперечисленного не помогает, можно обратиться к разработчику COM объекта или специалисту по PHP для получения более подробной помощи и решения проблемы.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир