Вернет ли php mb_strlen($str,’utf8’) больший результат, чем JavaScript .length?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Вернет ли php mb_strlen($str,’utf8’) больший результат, чем JavaScript .length?

Сообщение Anonymous »

Я работаю над реактивной формой Angular 17, где я отправляю данные формы в API PHP на сервере и сохраняю их в базе данных.
Я хотел бы, чтобы пользователь мог вводить смайлы в форму, поэтому я установил для своей базы данных параметры сортировки utf8mb4_unicode_ci, чтобы можно было хранить смайлы.
Безопасность очень важна для меня, поэтому я выполняю несколько проверок как на стороне клиента, так и на стороне клиента. серверная часть для различных вещей.
Одна из проверок, которые я выполняю, — это проверка длины ввода. Мне было интересно, можете ли вы помочь, потому что результаты длины несовместимы на стороне клиента и сервера (поскольку строка содержит смайлы).
При использовании свойства JavaScript .length и также встроенные валидаторы угловых форм, называемые minLength и maxLength. Я вижу, что все они вычисляют длину одинаково (например, большинство базовых смайлов-смайликов рассчитываются как имеющие длину 2) .
Однако, когда я отправляю эти данные (включая смайлы) на сервер, я использую метод PHP под названием mb_strlen($subject, 'utf8'), и значения разные (большинство базовых смайлов имеют длину 1, а также занимают в базе данных 1 символ varchar).
Я протестировал около 160 emojis, чтобы увидеть, какие значения они возвращают как на стороне клиента, так и на стороне сервера, чтобы попытаться разработать шаблон (чтобы я мог правильно проверять длину).
Как как вы можете видеть на моих скриншотах ниже, в большинстве случаев mb_strlen($subject,'utf8') возвращает меньшее значение длины, чем JavaScript .length. Иногда оно возвращает то же значение, что и свойство JavaScript .length, но во всех этих случаях mb_strlen($subject,'utf8') никогда не возвращало длину, превышающую ту, которую возвращает JavaScript .length.
Изображение

Изображение

Безопасно ли это предположить, что mb_strlen($subject,'utf8') никогда не вернет значение, большее, чем JavaScript .length. для остальных существующих смайлов, которые я не проверял?
Если нет, не могли бы вы объяснить немного больше об этом и привести несколько примеров символов, где mb_strlen($subject,'utf8' ) вернет большее значение, чем JavaScript .length?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/791 ... ascript-le
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Вернет ли php mb_strlen($str,’utf8’) больший результат, чем JavaScript .length?
    Anonymous » » в форуме Php
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Вернет ли php mb_strlen($str,’utf8’) больший результат, чем JavaScript .length?
    Anonymous » » в форуме Php
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Разъяснение по поводу `length = prefixTable[length - 1]` и `length = length - 1` в алгоритме KMP.
    Anonymous » » в форуме JAVA
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Разъяснение по поводу `length = prefixTable[length - 1]` и `length = length - 1` в алгоритме KMP.
    Anonymous » » в форуме JAVA
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Разъяснение по поводу `length = prefixTable[length - 1]` и `length = length - 1` в алгоритме KMP.
    Anonymous » » в форуме JAVA
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»