Странный illegal string offset или base64

111
09 июня 2019, 19:20

Есть загрузка в массив картинки в формате base64.

$base64 = 'data:image/' . $type . ';base64,'. base64_encode($data);
$data['numOne'] = strval($base64);

А есть загрузка в массив картинки в формате ссылки.

$data['numOne'] = file_create_url($file->uri);

Оба возвращают строку.

Но в первом примере выходит ошибка. При этом если вставить готовый результат виде строки в первый пример то всё работает.

illegal string offset

Заметил, что я использую одну и тужу переменную.

Answer 1

Вы формируете строку картинки

$base64 = 'data:image/' . $type . ';base64,'. base64_encode($data);

из этой строки можно предположить, что $data - это строковый контент вашей картинки, а никак не массив. Но в следующей строке вы обращаетесь к $data как к массиву

$data['numOne'] = ...;

что и вызывает ошибку

illegal string offset

поскольку строке тоже можно обратиться как к массиву, но индекса 'numOne' в нем нет

READ ALSO
Проверка ID в БД

Проверка ID в БД

Есть таблица в БД db_zadanie, в ней хранятся "id", "user", "iduser","text"

138
Фильтр записей используя WP_Query и пагинацию

Фильтр записей используя WP_Query и пагинацию

Есть форма с 2 кнопками(последние и популярные), при выборе должно выводить записи соответствующиеТ

99
Регулярные выражения PHP Метасимволы

Регулярные выражения PHP Метасимволы

есть строка с вариантами ответа в виде { }{ }{ { } } нужно написать регулярки для того чтобы открыть скобки, то что внутри скобок не важно, чисто...

138
Вопросы по AJAX, как работает?

Вопросы по AJAX, как работает?

В Wordpress делаю вызов функции с AJAX запросомОбъясните, пожалуйста, почему при успешном запросе НЕ БУДЕТ выведено по порядку 1 2 3, а выведется 1 3 2

131