Textract не показывает ответ в PHP - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь использовать Amazon Textract API для анализа содержимого PDF-файлов и извлечения электронных писем, однако, похоже, вам нужно использовать метод async; Я сделал это, но не могу увидеть / распечатать данные.

Вот мой код:

<?php

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

    //set environment values
    define('AWS_ACCESS_KEY_ID', '');
    define('AWS_SECRET_ACCESS_KEY', '');

    //require SDK
    require 'vendor/autoload.php';

    use Aws\Textract\TextractClient;

    function get_emails($file_path)
    {
        $client = new TextractClient([
            'region' => 'us-east-1',
            'version' => 'latest',
            'credentials' => [
                'key'    => AWS_ACCESS_KEY_ID,
                'secret' => AWS_SECRET_ACCESS_KEY
            ]
        ]);
        $file = fopen($file_path, "rb");
        $contents = fread($file, filesize($file_path));
        fclose($file);
        $options = [
            'Document' => [
                'Bytes' => $contents
            ],
            'FeatureTypes' => ['FORMS'],
        ];
        $promise = $client->analyzeDocumentAsync($options);
        $promise->then(
            // $onFulfilled
            function ($value) {
                echo 'The promise was fulfilled.';
                processResult($value);
            },
            // $onRejected
            function ($reason) {
                echo 'The promise was rejected.';
            }
        );
    }

    function processResult($result) {
        $blocks = $result['Blocks'];
        // Loop through all the blocks:
        foreach ($blocks as $key => $value) {
            if (isset($value['BlockType']) && $value['BlockType']) {
                $blockType = $value['BlockType'];
                if (isset($value['Text']) && $value['Text']) {
                    $text = $value['Text'];
                    if ($blockType == 'WORD') {
                        echo "Word: ". print_r($text, true) . "\n";
                    } else if ($blockType == 'LINE') {
                        echo "Line: ". print_r($text, true) . "\n";
                    }
                }
            }
        }
    }

    get_emails('1.pdf');

Если я запускаю это через браузер или консоль, я не получаю данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...