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: [Имя, Александр]

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

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

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

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

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

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир