решено Мета-тег (keywords)

JDVU

Пользователь
strlen не любит кириллицу. Так что mb_strlen()
о_О mb_strlen используют с расчетом кодировки символов, пример string mb_strlen (string str [, string encoding]), в тоже время как int strlen ( string string )
проще говоря вы можете указать кодировку

напридумают же
 
Последнее редактирование:

Sprinx

Пользователь
Указал:
PHP:
... if (mb_strlen($word, 'UTF-8') > 2)...
Результат тот же:
PHP:
<meta name="keywords" content="Wick, �����й, ��он, HDRip, John, 2014, �в�к, ��к" />
Да хватит городить велосипеды. Вчера не удалось выложить, так как переписываю на зенд.
 
L

ler

Гость
<meta name="keywords" content="Wick, �����й, ��он, HDRip, John, 2014, �в�к, ��к" />
Тут проблема в preg_replace, он тоже не дружит с кириллицей. Даже флаги ui не помогают. Вот такое тоже не катит А-ЯёЁ. У меня заработало только после явного указания всех русских букв в регулярке.
Код:
$keywords[]  = preg_replace("#([^-A-Za-zйцукенгшщзхъфывапролджэячсмитьбюйЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁ_!\s\.]*)#i", '', $word);

page_header.tpl должен быть сохранен в utf8 без бом

Знаю, будете сапогами кидаться, но для меня единственный рабочий вариант
 
Последнее редактирование модератором:

Nightmare

Пользователь
Наверное потому что должно быть а-яА-ЯЁё, а вообще можно кодами этих символов заменить
page_header.tpl должен быть сохранен в utf8 без бом
Я больше скажу изначально все файлы движка должны быть так сохранены
 
Последнее редактирование:
L

ler

Гость
Наверное потому что должно быть а-яА-ЯЁё, а вообще можно кодами этих символов заменить

PHP:
<?php

$name="trlen не любит кириллицу. Так что mb_strlen() и не помешает $word=preg_replace('![^\w\d\s]*!ui','',$word); Ну я код писал не проверяя) Отладка то 80% времени как раз и занимает)";

$name1 = preg_replace("#([^-0-9a-zа-яё_!'&\$@%\s\*\.]*)#i", '', $name);
$name2 = preg_replace("#([^-0-9A-Za-zа-яА-ЯёЁ_!'&\$@%\s\*\.]*)#i", '', $name);
$name3 = preg_replace("#([^-0-9A-Za-zа-яА-ЯёЁ_!'&\$@%\s\*\.]*)#ui", '', $name);
$name4 = preg_replace("#([^-0-9A-Za-zа-ЯёЁ_!'&\$@%\s\*\.]*)#i", '', $name);
$name5 = preg_replace("#([^-A-Za-zйцукенгшщзхъфывапролджэячсмитьбюйЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁ_!\s\.]*)#i", '', $name);


header('Content-Type: text/html; charset=utf-8');
echo $name1."<hr>";
echo $name2."<hr>";
echo $name3."<hr>";
echo $name4."<hr>";
echo $name5."<hr>";

Тогда наверно пришлите мне результат вывода
 

Nightmare

Пользователь
Тогда наверно пришлите мне результат вывода
1.jpg
Конкретно модификатор i не дружит с кириллицой. Изначально, самый первый вариант предложенный работает как и полагается. Зато забавные варианты модификатор регистронезависимости указываем, а диапазоны пишем и для верхнего регистра и для нижнего, это конечно повеселило
 
Сверху