minusd
@minusd

PHP обрезает строку, хотя strlen выдаёт правильную длину, как это исправить?

Получаю данные по API, это строка в формате json 6000-7000 символов. Раньше всё работало, но с обновлением данных API(видимо увеличилась длинна ответа). Причём когда я запрашиваю длину через strlen()
Длинна правильная. Я полагаю что дело в настройках php, т.к. других вариантов я не вижу.

Но есть ещё один странный факт, при использовании mb_substr

При следующем коды, вывод такой.
$data = file_get_contents($path);
echo(strlen($data));
echo '<br>';
$data2 =  mb_substr($data, 0);
echo(strlen($data2));
dd($data2);

3lt4eudkeyfsgwq_p57pgnoepba.png

Но как только мы добавляем значение.
$data = file_get_contents($path);
echo(strlen($data));
echo '<br>';
$data2 =  mb_substr($data, 500);
echo(strlen($data2));
dd($data2);

20zl1bc_6hyw2mdk5y9twzp8mc8.png

А если прибавим ещё
$data = file_get_contents($path);
echo(strlen($data));
echo '<br>';
$data2 =  mb_substr($data, 3000);
echo(strlen($data2));
dd($data2);


mhnojizobdu25jldionfcl-0fb4.png

Выводимая строка обрезается, а вот значение strlen меняется, тоже без понятия с чем это связано.
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
https://www.php.net/manual/ru/function.strlen.php
Замечание:
Функция strlen() возвратит количество байт, а не число символов в строке.
...
mb_strlen() - Получает длину строки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы