Leave a comment

lsergei August 26 2020, 01:09:53 UTC
Не совсем понятно о чем вы - приведенные вопросы были заданы 7 лет назад и относились к PHP v5. В 2020 актуальная версия 7, где насколько мне известно подобных проблем давно нет

Reply

sporaw August 26 2020, 01:27:23 UTC
Если вы внимательно посмотрите большую часть линков (особенно с ресурсов самого PHP), то заметите, что все указанные проблемы актуальны для самых последних версий. Ну, или можете начать с того, что помечено как "обобщенная информация", а потом на bugs.

Reply

lsergei August 26 2020, 01:32:21 UTC
Спасибо. В управлении несколько больших проектов на РНР с рядом азиатских языков и не слышал о проблемах, интересно.

Reply

lsergei August 26 2020, 08:37:34 UTC
Проблема есть, но она минорная, но с этой проблемой сталкиваешься только когда нужно в терминале какой-либо отчет (таблицу) сформировать. Для web (html) сайтов - по сути этой проблемы нету.

Reply

sporaw August 26 2020, 13:47:07 UTC
Достаточно захотеть воспользоваться чем-то банальным и примитивным типа str_pad
И неожиданно выясняется, что нужно городить колхозный огород :)

Reply

lsergei August 29 2020, 06:02:13 UTC
Вы вот захотели воспользоваться str_pad, так как скорее всего вам это нужно было для вывода в терминале. У 99% (цифра с потолка) php разработчиков такой потребности нет, в html сайтах дополнение строки пробелом не нужно, дополнение цифр нулем работает прекрасно, а дополнение одной строки другим символом - ну очень редкая задача.

Те эта детская проблема в PHP есть, но ее не чинят, так как она мало кого задевает и есть легкие способы исправления.

Reply

sporaw August 29 2020, 12:41:03 UTC
Весь язык по сути повернут на текстовое представление данных и текстовую обработку (собственно, и html - это тоже текстовая разметка). И при этом не имеет полноценную поддержку unicode. На этом все.

Эти текстовые функции базового API в PHP не я придумал, и в 2000-х они не просто так существовали. Т.е. это были явные нужды тех, кто этот язык создавал и развивал.

Что касается функций - ну я просто привел пример str_pad, откройте документ из поста (с расширением .md) и посмотрите набор. Ну, и остальные ссылки. Есть куча других функций с разным применением.

Reply

nightriderz1 September 2 2020, 12:34:02 UTC
Наверняка, есть и legacy груз ожиданий программиста вида ван чар=ван байт.
Я сейчас сам перетаскиваю один проект из ASCII мира в Unicode и во множестве мест сталкиваюсь с выделением памяти под нетипизированный или байтовый указатель используя длину строки с последующим прямым копированием. Если все (стандартную библиотеку) просто перевести на рельсы юникода, такой код жмякнется и пробьет пол на пять этажей вниз.
Возможно, в пхп что-то такое тоже сказывается.

Reply

sporaw September 2 2020, 13:42:12 UTC
Там отдельный набор функций, с префиксом mb_ (это против "груза времени"). Однако, их покрытие общего набора строковых функций небольшое. Того же str_pad нет. Уже несколько раз говорил заглянуть в табличку в документе из поста. Там есть сравнение. Ну и ссылки на mb_ список.

Reply


Leave a comment

Up