Jump to content
  • 0

Занимаюсь созданием cms


alex90aa
 Share

Question

В моей cms будет основной упор на:

1) Быстродействие

2) Минимизацию требований к хостингу

3) Замену таких средств как phpMyAdmin, файловый менеджер

4) Разделенное администрирование

Работа движется к завершению. CMS некомерческая. Так сказать - для себя, для знакомых и для компаний где буду работать. Ну и всем желающим также могу дать готовый вариант.

Следующие вопросы:

1 - чем плоха функция serialize ? Я ее много где использую для увеличения быстродействия - чтобы хранить несколько значений в одном поле. Ведь чем больше полей тем медленнее таблица sql. Могут ли быть проблемы с использованием данной функции?

2 - стоит ли заморачиваться с отправкой e-mail через сокеты. Если да, то может кто-нибудь привести универсальный вариант такой отправки. Те что я увидел у меня почему-то не работают. Функция mail не очень хороша при отправке большого количества писем, она притормаживает сервер, письма начинают не отправляться. Сам в linux не силен, не знаю как устроены команды через сокеты.

3 - Есть ли у кого-нибудь аналог функций библиотеки ms_string не требующий этого расширения. Я конечно в cms сделал что она определяет есть ли расширение, если нет - то не использует функции и результат не очень хороший. не хочется чтобы некоторые пользователи страдали. Интересуют функции mb_substr и mb_strpos

4 - Сколько запросов к базе на странице может быть чтобы не возникало вопросов о том что система может тормозить? У меня: 1) запрос по псевдониму 2) запрос в таблицу данных модуля 3) запрос на выбор шаблона 4) запрос на права к модулю + на каждый модуль на странице по 2 запроса. Все запросы обычные, без связок таблицу.

Нормально ли это?

Не 50 запросов как в битриксе, но и 20 спокойно может получиться при увеличении количества модулей. Стоит ли работать по уменьшению запросов?

Link to comment
Share on other sites

Recommended Posts

  • 0

В написании cms я дилетант, но так как сообщения автора содержит не только вопросы, но и подтекст к обсуждению поэтому я и напишу свое мнение обывателя

я бы уточнил что подразумевается под "Минимизацию требований к хостингу" потенциально гнаться, чтобы система работала везде я думаю не стоит, важно, чтобы система работала на нормальном виртуальном хостинге.

Так же лично мне не понятно, что значит "Замену таких средств как phpMyAdmin, файловый менеджер" - как это относится к cms особенно phpMyAdmin?

И к 4-му вопросу у меня обывательское мнение:

Все равно сколько запросов, к примеру, drupal при включении и отключении модуля делает более 5000 запросов к БД, а при генерировании каждой страницы их легко 200+ и мне как пользователю глубоко все равно какого их кол-во пока грубо говоря время выполнения их не превышает 0.1с

Лично мне важно насколько эффективно работает кеширование и инструмент в работе которого предусмотрена возможность сброса кеша только тех страниц где что-то изменилось. (пример: при добавлении/изменении новости сбрасывается кеш самой страницы и сбрасывается кеш тех страниц где фигурирует анонс этой новости либо другая информация) А так же возможность кеширования страницы + наличия динамических блоков

Link to comment
Share on other sites

  • 0

Использовать serialize для хранения массивов в базе есть не очень хорошо.

Лучше нормально немного попыхтеть и привести таблицы к первой или второй нормальной форме, нормально распределить ключи тогда намного гибче будет таблица в запросах. А если упереться в быстродействие тогда SQLite.

Link to comment
Share on other sites

  • 0

В написании cms я дилетант, но так как сообщения автора содержит не только вопросы, но и подтекст к обсуждению поэтому я и напишу свое мнение обывателя

я бы уточнил что подразумевается под "Минимизацию требований к хостингу" потенциально гнаться, чтобы система работала везде я думаю не стоит, важно, чтобы система работала на нормальном виртуальном хостинге.

Так же лично мне не понятно, что значит "Замену таких средств как phpMyAdmin, файловый менеджер" - как это относится к cms особенно phpMyAdmin?

И к 4-му вопросу у меня обывательское мнение:

Все равно сколько запросов, к примеру, drupal при включении и отключении модуля делает более 5000 запросов к БД, а при генерировании каждой страницы их легко 200+ и мне как пользователю глубоко все равно какого их кол-во пока грубо говоря время выполнения их не превышает 0.1с

Лично мне важно насколько эффективно работает кеширование и инструмент в работе которого предусмотрена возможность сброса кеша только тех страниц где что-то изменилось. (пример: при добавлении/изменении новости сбрасывается кеш самой страницы и сбрасывается кеш тех страниц где фигурирует анонс этой новости либо другая информация) А так же возможность кеширования страницы + наличия динамических блоков

Про минимизацию - далеко не у всех установлены расширения mb_string, iconv иногда даже графического обработчки GD нет. Другие системы сразу же отказываются устанавливаться. Я хочу чтобы система все равно работала, пусть и с ограничениями.

Насчет кэширования - в случае с новостями все понятно. Но как же динамические страницы? Да, алгоритм кэширования я пока не доработал, у меня кэшируются полностью страницы, которым разрешено кэшироваться, например товары каталога. Но у меня есть такая штука - внутри модуля можно использовать другой модуль. Например внутри текстовой страницы выводить форму. Тогда я уже не понимают как кэшировать :(

Использовать serialize для хранения массивов в базе есть не очень хорошо.

Лучше нормально немного попыхтеть и привести таблицы к первой или второй нормальной форме, нормально распределить ключи тогда намного гибче будет таблица в запросах. А если упереться в быстродействие тогда SQLite.

Я не очень понимаю что значит первая нормальная форма. У меня такой принцип - при обращении к новостям затрагивается только таблица 'news' и т.д.

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

Время выполнения скрипта 0.03 - мне кажется это хороший показатель. На битриксе даже с их кэшированием быстрее 0.5 не бывает

Link to comment
Share on other sites

  • 0

Не надо минимизировать требования к хостингу. Надо хостинг выбирать под задачу, а не задачу под хостинг. Сейчас нормальный VDS можно взять за 7? в месяц — так вообще всё, что душе угодно можно накатить. Про serialize помнится что это медленная функция для сериализации массивов. Вот пример

<?php
$a=range(0, 1000);

$t=microtime(1);
for ($i=0; $i<10000; $i++)
serialize($a);
echo microtime(1)-$t.'<br>';


$t=microtime(1);
for ($i=0; $i<10000; $i++)
json_encode($a);
echo microtime(1)-$t;

у меня разнца примерно в 4 раза. Это если, конечно, массивы сериализируете. Если какие-то другие данные, то тут надо смотреть. Зачем заменять PMA и файловый менеджер? Они уже придуманы и не надо изобретать велосипедов. С email не знаю — опять же от задачи зависит. Если реально горы почты отправляются, то надо отдельный сервер ставить и писать специально заточенные для него вещи. В реальности использовать mail совершенно нормально. Запросов в БД может быть сколько угодно — лишь бы они были оправданы и хорошо написаны. Кэширование — достаточно сложная и обширная тема. Я использую в основном два варианта: или кэширую шаблоны и сразу их выдаю из nginx, не залезая в бэкенд (для совсем маленьких сайтов, где можно маниплировать сразу всеми файлами и ничего не случится или только отдельные шаблоны) или кэширую какие-то отдельные данные в memcache. Про 0,5 сек битрикса — это реально так? По-моему 0,5 секунды это просто неимоверно дофига и я не верю. Это получается что 20 конкурентных запросов в течение непродолжительного времени всё повесят? Вот только что посмотрел — на движке, который мы используем на работе на реальном продакшне время работы примерно 0.02 — 0.1 сек в зависимости от количества выводимой информации. Верхний край это когда выводится, например, >100 товаров на страницу с картинками и всем таким. Никакого кэширования вообще, так как оно и не нужно. С кэшированием, конечно, было бы ровнее, спору нет.

Link to comment
Share on other sites

  • 0

Не надо минимизировать требования к хостингу. Надо хостинг выбирать под задачу, а не задачу под хостинг. Сейчас нормальный VDS можно взять за 7? в месяц — так вообще всё, что душе угодно можно накатить. Про serialize помнится что это медленная функция для сериализации массивов. Вот пример

<?php
$a=range(0, 1000);

$t=microtime(1);
for ($i=0; $i<10000; $i++)
serialize($a);
echo microtime(1)-$t.'<br>';


$t=microtime(1);
for ($i=0; $i<10000; $i++)
json_encode($a);
echo microtime(1)-$t;

у меня разнца примерно в 4 раза. Это если, конечно, массивы сериализируете. Если какие-то другие данные, то тут надо смотреть. Зачем заменять PMA и файловый менеджер? Они уже придуманы и не надо изобретать велосипедов. С email не знаю — опять же от задачи зависит. Если реально горы почты отправляются, то надо отдельный сервер ставить и писать специально заточенные для него вещи. В реальности использовать mail совершенно нормально. Запросов в БД может быть сколько угодно — лишь бы они были оправданы и хорошо написаны. Кэширование — достаточно сложная и обширная тема. Я использую в основном два варианта: или кэширую шаблоны и сразу их выдаю из nginx, не залезая в бэкенд (для совсем маленьких сайтов, где можно маниплировать сразу всеми файлами и ничего не случится или только отдельные шаблоны) или кэширую какие-то отдельные данные в memcache. Про 0,5 сек битрикса — это реально так? По-моему 0,5 секунды это просто неимоверно дофига и я не верю. Это получается что 20 конкурентных запросов в течение непродолжительного времени всё повесят? Вот только что посмотрел — на движке, который мы используем на работе на реальном продакшне время работы примерно 0.02 — 0.1 сек в зависимости от количества выводимой информации. Верхний край это когда выводится, например, >100 товаров на страницу с картинками и всем таким. Никакого кэширования вообще, так как оно и не нужно. С кэшированием, конечно, было бы ровнее, спору нет.

Спасибо, давно ждал такого ответа!

Объясняю все сразу:

Сериализация происходит в основном в администрировании, когда скорость не важна. В публичной нет сериализации массивов. Есть объединение строк в одном поле - это адреса картинок. Меня интересует вопрос отказоустойчивость сериализации, может ли при каких-то специальных символах она выдать ошибку?

Замена PMA представляет собой расширение API. Если программисту использующему CMS надо будет создать таблицу данных он сможет это сделать намного быстрее. Для написания модулей это также очень удобно - написав модуль для публичной части, с помощью данного расширения очень просто настроить управление модулем в удобном виде. Возможностей больше чем в phpmyadmin - можно использовать файлы, картинки, списки выбора выводящие данные из других таблиц и т.д.

Файловый менеджер для управления файлами прямо через админку. Редактирование php-файла. Если привыкнуть и канал соединения хороший - разработка будет быстрее и удобнее. Обработка фотографий в админке, поворот фотографий

Про E-mail: сможет ли функция mail сделать рассылку 1000 пользователям новостей? а 5000?

С кэшированием пока еще не работал. А за остальное спасибо

Link to comment
Share on other sites

  • 0

Спасибо, давно ждал такого ответа!

Объясняю все сразу:

Сериализация происходит в основном в администрировании, когда скорость не важна. В публичной нет сериализации массивов. Есть объединение строк в одном поле - это адреса картинок. Меня интересует вопрос отказоустойчивость сериализации, может ли при каких-то специальных символах она выдать ошибку?

Замена PMA представляет собой расширение API. Если программисту использующему CMS надо будет создать таблицу данных он сможет это сделать намного быстрее. Для написания модулей это также очень удобно - написав модуль для публичной части, с помощью данного расширения очень просто настроить управление модулем в удобном виде. Возможностей больше чем в phpmyadmin - можно использовать файлы, картинки, списки выбора выводящие данные из других таблиц и т.д.

Файловый менеджер для управления файлами прямо через админку. Редактирование php-файла. Если привыкнуть и канал соединения хороший - разработка будет быстрее и удобнее. Обработка фотографий в админке, поворот фотографий

Прям вырезка из рекламного проспекта какая-то...

Про E-mail: сможет ли функция mail сделать рассылку 1000 пользователям новостей? а 5000?

Извините что вопросом на вопрос: А через SMTP вы можете разом отправить такое количество писем? Технологии рассылки в данном случае примерно одинаковы, да mail() ограничен в возможностях, но по колличеству писем они могут быть ограничены одинаково. Так что в любом случае придётся пачками отправлять.

Link to comment
Share on other sites

  • 0

А через SMTP вы можете разом отправить такое количество писем? Технологии рассылки в данном случае примерно одинаковы, да mail() ограничен в возможностях, но по колличеству писем они могут быть ограничены одинаково. Так что в любом случае придётся пачками отправлять.

Ну я не знаю как STMP работает потому и вопрос :)

пачками конечно можно - но знаю что через mail письма часто не доходят. Если это неправда скажите

Link to comment
Share on other sites

  • 0

а можете показать свои наработки? ;)

я сегодня только решил написать большой постик с приглашение к разработке опенсорц движка, темка тут http://forum.htmlbook.ru/index.php?showtopic=31453

вопрос отправки писем тоже можете посмотреть как у меня сделан, некоторые заметки "для себя" вот тут описаны http://smart-core.org/wiki/Почтовые_рассылки.

а у вас файловый менеджер и БД адинка откручиваемая? ;) есть возможность её вставть в другой проект, отличный от вашего? ;)

про сериализацию: у меня все параметры к чему бы то нибыло хранятся в сериализованном виде, проблем с устойчивостью нет вообще, в прицнипе надо будет сделать тесты и если json окажется шустрее, то заменить сериализацию будет недолго :)

Link to comment
Share on other sites

  • 0

а у вас файловый менеджер и БД адинка откручиваемая? ;) есть возможность её вставть в другой проект, отличный от вашего? ;)

В MODx revolution можно это открутить... И вообще рекомендую покрутить MODx раз уж вы создаете что-то новое, там очень много удачных решений.

Link to comment
Share on other sites

  • 0

а можете показать свои наработки? ;)

я сегодня только решил написать большой постик с приглашение к разработке опенсорц движка, темка тут http://forum.htmlbook.ru/index.php?showtopic=31453

вопрос отправки писем тоже можете посмотреть как у меня сделан, некоторые заметки "для себя" вот тут описаны http://smart-core.org/wiki/Почтовые_рассылки.

а у вас файловый менеджер и БД адинка откручиваемая? ;) есть возможность её вставть в другой проект, отличный от вашего? ;)

про сериализацию: у меня все параметры к чему бы то нибыло хранятся в сериализованном виде, проблем с устойчивостью нет вообще, в прицнипе надо будет сделать тесты и если json окажется шустрее, то заменить сериализацию будет недолго :)

Спасибо. Видел вашу тему на нижегородском форуме. А вы из какого города?

Нет к сожалению не откручиваемая. Возможно сделаю.

Сериализация удобна. Но если я храню данные одного типа, то использую простые разделители.

а у вас файловый менеджер и БД адинка откручиваемая? ;) есть возможность её вставть в другой проект, отличный от вашего? ;)

В MODx revolution можно это открутить... И вообще рекомендую покрутить MODx раз уж вы создаете что-то новое, там очень много удачных решений.

МодИкс очень сложна.. боюсь ее

Link to comment
Share on other sites

  • 0

В MODx revolution можно это открутить... И вообще рекомендую покрутить MODx раз уж вы создаете что-то новое, там очень много удачных решений.

МодИкс очень сложна.. боюсь ее

У меня знакомая девушка дизайнер, когда не нужно писать не каких дополнительных модулей сама верстает сайты на нем... Чтобы написать и использовать модули в шаблонах на нем, много проще чем в любой кмс которую я видел, работа с шаблонами происходит не посредственно в админке, где можно легко разделять программную часть от дизайна... Сложна данная кмс только на первый взгляд...

Link to comment
Share on other sites

  • 0

Ну я не знаю как STMP работает потому и вопрос :)

пачками конечно можно - но знаю что через mail письма часто не доходят. Если это неправда скажите

Через mail() письма часто доходят, главное чтоб были правильные заголовки, очень много параноиков (почтовых серверов) развелось (mail.ru, rambler.ru и подобные) на них может не доходить даже если всё впорядке но просто с одного адреса сразу много писем, они часть пропускают а остальные блокируют. В общем три пункта: 1. Заголовки; 2. Чистый адрес отправляющего сервера; 3. И умеренность в количестве.

Link to comment
Share on other sites

  • 0

Ну я не знаю как STMP работает потому и вопрос :)

пачками конечно можно - но знаю что через mail письма часто не доходят. Если это неправда скажите

Через mail() письма часто доходят, главное чтоб были правильные заголовки, очень много параноиков (почтовых серверов) развелось (mail.ru, rambler.ru и подобные) на них может не доходить даже если всё впорядке но просто с одного адреса сразу много писем, они часть пропускают а остальные блокируют. В общем три пункта: 1. Заголовки; 2. Чистый адрес отправляющего сервера; 3. И умеренность в количестве.

Есть ли какое-то определенное кол-во писем которое можно отправлять в секунду а которое нет?

То есть в скрипте мне придется считать на какие адреса отправлены письма. Если на мэйл уже 50 отправлены. подождать 10 секунд и т.д.?

В MODx revolution можно это открутить... И вообще рекомендую покрутить MODx раз уж вы создаете что-то новое, там очень много удачных решений.

МодИкс очень сложна.. боюсь ее

У меня знакомая девушка дизайнер, когда не нужно писать не каких дополнительных модулей сама верстает сайты на нем... Чтобы написать и использовать модули в шаблонах на нем, много проще чем в любой кмс которую я видел, работа с шаблонами происходит не посредственно в админке, где можно легко разделять программную часть от дизайна... Сложна данная кмс только на первый взгляд...

а скажите какие особенно удачные решения там есть :) Спасибо

Link to comment
Share on other sites

  • 0

на тему постовых рассылок, могу предложить вот такую проектную статейку http://smart-core.org/wiki/Почтовые_рассылки, на самом деле в движке уже реализован прототир рассылки, вполне работает :) разумеется требудет усовершествований, например шаблоны писем, чтобы можно было именные письма делать, также проверку на доставку и прочтение, также отправку через smtp... но принцип уже заложе и вполне устраивает :)

Link to comment
Share on other sites

  • 0

Я тоже черкану пару строк на эту тему, потому что сам когда-то страдал таким делом.

1. Функция serialize как было сказано выше плоха тем, что она медленная. PHP вообще намного медленнее бд в плане поиска и сортировки данных. Я бы вам посоветовал отказаться от использования этой функции. Даже в админке. Пользователь не станет устанавливать себе движек у которого глючит админка. По крайней мере, я бы не стал.

Кроме того, хотелось бы услышать, в каких именно моментах вы используете эту функцию. Может быть у вас не нормализована бд и если вы об этом слышите впервые, то советую внимательно изучить эту тему прежде чем начинать создавать что-то свое.

2. Универсальности нигде не существует в мире. И в программировании тоже. Я бы посоветовал здесь делать оба способа отправки почты, потому что на одном хостинге может быть SMTP-сервер, а на другом нет и придется отправлять почту через ф-цию mail. Если не знакомы с SMTP, то можете почитать цикл моих статей на эту тему.

3. Кроме mb_string таких действий как mb_substr и mb_strpos с утф больше никакие функции PHP не умеют делать. Где-то слышал, что PHP хотят полностью перевести на утф и все строковые функции будут работать исключительно с утф. Но это только слух и пока-что в этой области нет никаких конкретных решений. Занесите это в системные требования и не парьтесь по этому поводу.

4. Вопрос не в количестве. А в качестве. Один запрос может повесить всю вашу базу данных на несколько секунд, поэтому старайтесь внимательно подходить к созданию таблиц и составлению запросов.

Кроме того, посоветую не страдать универсализмом. Лучше подумайте над тем, какие задачи (т.е. для каких сайтов) будет решать ваша CMS и двигаться в этом направлении. Если же вы хотите сделать CMS, которая сможет подойти для любых сайтов, то вам над такой системой придется трудиться лет 5 или больше. А к тому времени технологии изменяться и ваша система будет отсталой и устаревшей. И вам опять придется переделывать весь движек, чтобы соответствовать современным технологиям, а пока вы будете переделывать.... И так до бесконечности.

Link to comment
Share on other sites

  • 0

Дайте мне пожалуйста Вашу CMS :)

К сожалению, не могу. Она разрабатывалась не для публичного использования, а скорее для личного изучения принципов построения таких систем.

Если хотите посмотреть на удачные системы, то лучше возьмите самые популярные сейчас: Wordpress, Joomla!, Drupal, DLE, MODx и др.

Link to comment
Share on other sites

  • 0

могу предложить познакомиться с моей системкой ;)

Я уже в субботу это сделал, зачем ты мне в воскресенье об этом пишешь?

Я тоже черкану пару строк на эту тему, потому что сам когда-то страдал таким делом.

1. Функция serialize как было сказано выше плоха тем, что она медленная. PHP вообще намного медленнее бд в плане поиска и сортировки данных. Я бы вам посоветовал отказаться от использования этой функции. Даже в админке. Пользователь не станет устанавливать себе движек у которого глючит админка. По крайней мере, я бы не стал.

Кроме того, хотелось бы услышать, в каких именно моментах вы используете эту функцию. Может быть у вас не нормализована бд и если вы об этом слышите впервые, то советую внимательно изучить эту тему прежде чем начинать создавать что-то свое.

2. Универсальности нигде не существует в мире. И в программировании тоже. Я бы посоветовал здесь делать оба способа отправки почты, потому что на одном хостинге может быть SMTP-сервер, а на другом нет и придется отправлять почту через ф-цию mail. Если не знакомы с SMTP, то можете почитать цикл моих статей на эту тему.

3. Кроме mb_string таких действий как mb_substr и mb_strpos с утф больше никакие функции PHP не умеют делать. Где-то слышал, что PHP хотят полностью перевести на утф и все строковые функции будут работать исключительно с утф. Но это только слух и пока-что в этой области нет никаких конкретных решений. Занесите это в системные требования и не парьтесь по этому поводу.

4. Вопрос не в количестве. А в качестве. Один запрос может повесить всю вашу базу данных на несколько секунд, поэтому старайтесь внимательно подходить к созданию таблиц и составлению запросов.

Кроме того, посоветую не страдать универсализмом. Лучше подумайте над тем, какие задачи (т.е. для каких сайтов) будет решать ваша CMS и двигаться в этом направлении. Если же вы хотите сделать CMS, которая сможет подойти для любых сайтов, то вам над такой системой придется трудиться лет 5 или больше. А к тому времени технологии изменяться и ваша система будет отсталой и устаревшей. И вам опять придется переделывать весь движек, чтобы соответствовать современным технологиям, а пока вы будете переделывать.... И так до бесконечности.

1. данныые, которые хранятся в Serialize в дальнейшем не сортируются и не фильтруются. БД отлично нормализована

3. А обход строки в цикле? Он может обработать UTF-8 ?

Link to comment
Share on other sites

  • 0

1. Я рад, что база хорошо нормализована. Позвольте полюбопытствовать, до какой нормальной формы?

2. Врядли. Потому что размер данных разный.

1. до первой

2. не подскажите сколько будет обрабатываться через цикл for строка из миллиона символов?

Link to comment
Share on other sites

  • 0

1. Я рад, что база хорошо нормализована. Позвольте полюбопытствовать, до какой нормальной формы?

2. Врядли. Потому что размер данных разный.

1. до первой

2. не подскажите сколько будет обрабатываться через цикл for строка из миллиона символов?

1. Эх, маловато. Обычно нормализуют до 3-й. Я вот недавно делал правки для одного сайта, так там база не до конца номализована была. Валютные пары в подписках были представлены в таком виде ::EURUSD::USDGPB::, способ получения (email, icq, sms) в таком же виде. По хорошему их нужно было разнести на несколько отдельных таблиц (para, subscribe2para и т.д.), потому что поиск с помощью LIKE очень неплохо нагружает базу.

Нормализация обычно зависит от самих таблиц. Если у вас больше нечего нормализовать, то это очень хорошо!

2. Я не это имел ввиду. Простой пример для вас


$utf_string = 'Это строка в утф';
$cp_string = mb_convert_encoding($utf_string, 'windows-1251', 'utf-8');

//display Windows-1251-string
for($i=0;$i<strlen($cp_string);$i++)
echo $cp_string[$i].' ';
echo '<br/>';
//display UTF-string
for($i=0;$i<strlen($utf_string);$i++)
echo $utf_string[$i].' ';

Выводит вот такую белиберду:

Э т о с т р о к а в у т ф

Р ­ С ‚ Р ѕ С Ѓ С ‚ С Ђ Р ѕ Р є Р ° Р І С ѓ С ‚ С „

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

Link to comment
Share on other sites

  • 0

2. Я не это имел ввиду. Простой пример для вас


$utf_string = 'Это строка в утф';
$cp_string = mb_convert_encoding($utf_string, 'windows-1251', 'utf-8');

//display Windows-1251-string
for($i=0;$i<strlen($cp_string);$i++)
echo $cp_string[$i].' ';
echo '<br/>';
//display UTF-string
for($i=0;$i<strlen($utf_string);$i++)
echo $utf_string[$i].' ';

Выводит вот такую белиберду:

Э т о с т р о к а в у т ф

Р ­ С ‚ Р ѕ С Ѓ С ‚ С Ђ Р ѕ Р є Р ° Р І С ѓ С ‚ С „

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

Понятия не имею :)

Я думал прокатит. Странно! Ведь substr_count, str_replace отлично работаю с UTF-строками!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy