Вопрос №69438 от пользователя Илья в уроке «Погружаясь в строки», курс «Основы PHP»

Илья

Знаю что не получится с кириллицей, но вопрос в другом, не могу понять почему выводится только первая буква от слова… https://ru.hexlet.io/code_reviews/624004

4 0

Чингис Манджиев

Илья, привет.
Посмотри еще раз в теории урока:

А вот достойной альтернативы взятию конкретного символа в строке по индексу не существует. Такую задачу нужно выполнять с помощью функции mb_substr().

И еще, зачем возвращаешь из функции print_r?
Надо просто переменную $result возвращать без принта.

1

Чингис Манджиев

Илья, посмотрел новую версию кода.

  1. $currentChar = mb_substr($text, $i) — не указываешь параметр length для функции mb_substr, посмотри документацию на эту функцию: https://www. php.net/manual/ru/function.mb-substr.php
  2. Возвраты неверно сделаны. Как только компьютер дошел до return, происходит выход из функции, т.е. дальнейший после return код внутри функции не исполняется. Тебе нужно возвращать $result, а не текущую букву)
    А получаешь слово целиком строчными буквами, т.к. mb_substr в данном случае применяешь неправильно.

0

Чингис Манджиев

Илья, а и пользуйся функцией dump(). Она будет выводить на экран во вкладке Output то, что передашь аргументом.
Например, dump($currentChar) — покажет, что у тебя в переменной $currentChar находится в том месте, где напишешь

dump().

0

Aleksandr Litvinov

Илья, я вижу, что вам подсказали уже очень и очень подробно. Получилось решить задание? Остались вопросы?

0

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Рекомендуемые программы

С нуля до разработчика.

Возвращаем деньги, если не удалось найти работу.

Профессия

с нуля

Фронтенд-разработчик

Разработка фронтенд-компонентов для веб-приложений

3 ноября 10 месяцев

Профессия

с нуля

Python-разработчик

Разработка веб-приложений на Django

3 ноября 10 месяцев

Профессия

с нуля

Java-разработчик

Разработка приложений на языке Java

3 ноября 10 месяцев

Профессия

с нуля

PHP-разработчик

Разработка веб-приложений на Laravel

3 ноября 10 месяцев

Профессия

с нуля

Node.js-разработчик

Разработка бэкенд-компонентов для веб-приложений

3 ноября 10 месяцев

Профессия

с нуля

Верстальщик

Верстка с использованием последних стандартов CSS

в любое время 5 месяцев

Профессия

с нуля

Fullstack-разработчик

Разработка фронтенд- и бэкенд-компонентов для веб-приложений

3 ноября 16 месяцев

Профессия

c опытом

Разработчик на Ruby on Rails

Создание веб-приложений со скоростью света

3 ноября 5 месяцев

Профессия

Новый с нуля

Инженер по тестированию

Ручное тестирование веб-приложений

17 ноября 4 месяца

Неустранимая ошибка: вызов неопределенной функции mb_substr() Ошибка

Обновлено Джеффом Мэтсоном 16 августа 2021 г.

2 минуты, 24 секунды на чтение : вызов неопределенной функции mb_substr() . Это вызвано тем, что определенный модуль не включен в вашу конфигурацию PHP. В этой статье мы научим вас, как решить проблему, чтобы ваш сайт снова заработал.

Что вызывает эту ошибку?

Эта ошибка вызвана отсутствием модуля mbstring в конфигурации PHP. Хотя это и не требуется для большинства программ, некоторые могут использовать его для кодирования многобайтовых символов. Если код, который вы используете, требует многобайтовой кодировки символов, вы получите эту ошибку при вызове функции mb_substr().

Как исправить эту ошибку?

Чтобы устранить эту ошибку, вам необходимо установить PHP-модуль mbstring. Если вы находитесь на VPS или выделенном сервере, это можно сделать довольно легко.

Если у вас нет root-доступа

Если у вас нет root-доступа на вашем сервере, вам нужно либо получить root-доступ, либо отправить запрос в службу технической поддержки, чтобы они могли скомпилировать PHP с поддержкой mbstring. После включения mbstring на сервере ваши ошибки больше не должны сохраняться.

Если у вас есть root-доступ

Если у вас есть root-доступ к вашему VPS или выделенному серверу, вы можете просто использовать EasyApache для перекомпиляции PHP с поддержкой mbstring. Для этого вы можете следовать этим инструкциям:

  1. Во-первых, вам нужно войти в свой WHM как root.

  2. Затем найдите EasyApache в верхнем левом поле поиска, затем нажмите EasyApache

  3. Теперь, когда вы находитесь на этой странице, выберите переключатель рядом с , затем ранее сохраненная конфигурация, . Начать настройку на основе профиля .

  4. Далее вам будет предложено выбрать версию Apache. Просто выберите сохранить уже выбранные параметры. Нам не нужно будет вносить какие-либо изменения в Apache.

  5. После экрана Apache выберите версию PHP. Вы захотите оставить это так же, как и то, что уже выбрано, поскольку изменение вашей версии PHP может привести к поломке ваших существующих сайтов, если они требуют более высокой или более низкой версии PHP. Просто нажмите Next Step , чтобы перейти на следующую страницу.

  6. После выбора версии PHP вы попадете в краткий список опций. Прокрутите страницу вниз и нажмите Исчерпывающий список опций .

  7. Теперь, когда вы находитесь в списке исчерпывающих параметров, вы увидите Mbstring в разделе PHP. Чтобы включить mbstring, установите флажок слева от него. После того, как он выбран, прокрутите вниз и нажмите «Сохранить и построить».

  8. Как только вы нажмете кнопку Save and Build в EasyApache, начнется сборка. Не закрывайте окно и не уходите со страницы. Это может вызвать проблемы с вашей конфигурацией Apache. После завершения ваши ошибки больше не должны сохраняться.

Неустранимая ошибка: вызов неопределенной функции Ошибка mb_substr() — База знаний | Портал веб-сервисов

Эта ошибка вызвана отсутствием модуля mbstring в конфигурации PHP. Хотя это не требуется для большинства программ, некоторые могут использовать его для многобайтовой кодировки символов. Если код, который вы используете, требует многобайтовой кодировки символов, вы получите эту ошибку при вызове функции mb_substr().

Чтобы устранить эту ошибку, вам необходимо установить PHP-модуль mbstring. Если вы находитесь на VPS или выделенном сервере, это можно сделать довольно легко. Если у вас нет root-доступа, отправьте электронное письмо по адресу [email protected] , чтобы наши инженеры помогли вам в этом.

  1. Во-первых, вам нужно войти в свой WHM как root.
  2. Затем найдите EasyApache в верхнем левом поле поиска, затем нажмите EasyApache 3
  3. Теперь, когда вы находитесь на этой странице, выберите переключатель рядом с ранее сохраненной конфигурацией, затем щелкните Начать настройку на основе профиля.
  4. Далее вам будет предложено выбрать версию Apache. Просто выберите сохранить уже выбранные параметры. Нам не нужно будет вносить какие-либо изменения в Apache.
  5. После экрана Apache выберите версию PHP. Вы захотите оставить это так же, как и то, что уже выбрано, поскольку изменение вашей версии PHP может привести к поломке ваших существующих сайтов, если они требуют более высокой или более низкой версии PHP. Просто нажмите «Следующий шаг», чтобы перейти на следующую страницу.
  6. После выбора версии PHP вы будете отправлены в краткий список параметров. Прокрутите страницу вниз и нажмите «Исчерпывающий список параметров».
  7. Теперь, когда вы находитесь в списке исчерпывающих параметров, вы увидите Mbstring в разделе PHP. Чтобы включить mbstring, установите флажок слева от него. После того, как он выбран, прокрутите вниз и нажмите «Сохранить и построить».
  8. Как только вы нажмете кнопку «Сохранить и построить» в EasyApache, начнется сборка. Не закрывайте окно и не уходите со страницы. Это может вызвать проблемы с вашей конфигурацией Apache. После его завершения ваши ошибки больше не должны сохраняться.
  • 0 пользователей нашли это полезным

Этот ответ был полезен?

Связанные статьи

Настройка загрузки файла или размера поста

Если вы используете PHP-скрипт и хотите увеличить «размер сообщения» или «размер файла», я могу.