|
|
|
|
|
для: gRoot
(08.03.2010 в 08:15)
| | Если текст большой, есть смысл вынести подсчет строки за цикл, как советовали выше. Если маленький - особого смысла нет, так как лишнее присвоение:
<?php
$str = 'Привет, мир!';
$new = '';
mb_internal_encoding('utf-8');
$str = mb_strtolower($str);
$cnt = mb_strlen($str);
for($i = 0; $i < $cnt ; $i++)
if(rand(1, 2) == 1)
$new .= mb_strtoupper(mb_substr($str, $i, 1));
else
$new .= mb_substr($str, $i, 1);
echo $new;
|
| |
|
|
|
|
|
|
|
для: Николай2357
(08.03.2010 в 07:18)
| | Спасибо большое! Ваш вариант отлично работает :) | |
|
|
|
|
|
|
|
для: gRoot
(07.03.2010 в 20:10)
| | >Я где-то слышал, что у мультибайтных кодировок это невозможно.
Это действительно так. Ну а если нужен полный бардак с регистрами, то тогда так можно:
<?php
$str = 'Привет, мир!';
$new = '';
mb_internal_encoding('utf-8');
$str = mb_strtolower($str);
for($i = 0; $i < mb_strlen($str); $i++)
if(rand(1, 2) == 1)
$new .= mb_strtoupper(mb_substr($str, $i, 1));
else
$new .= mb_substr($str, $i, 1);
echo $new;
|
| |
|
|
|
|
|
|
|
для: gRoot
(07.03.2010 в 20:10)
| | Да. Простое преобразование всего текста $text = mb_strtoupper($text); работает. Но по символьные из массива не хочет | |
|
|
|
|
|
|
|
для: Akdmeh
(07.03.2010 в 10:14)
| | И это не помогло. Я даже пробывал так: перед тем как преобразования делать перегонял текст при помощи iconv в win-кодировку, а потом обратно в utf.
Но реакция от mb_internal_encoding() другая. Русский текст вообще исчезает. Это никак не связано, что мы utf кодировку разбиваем на символьные массивы? Я где-то слышал, что у мультибайтных кодировок это невозможно. | |
|
|
|
|
|
|
|
для: gRoot
(07.03.2010 в 08:30)
| | mb_internal_encoding() - установите кодировку явно.
http://php.su/functions/?mb-internal-encoding | |
|
|
|
|
|
|
|
для: gRoot
(07.03.2010 в 07:03)
| | Хм. У меня mbstring enabled, а с utf8 не работает или вообще текст режет.
Использую вот так
function crazyreg ($text) {
for($i=0; $i<mb_strlen($text); $i++) {
if($i%2 == 0) {
$text[$i] = mb_strtoupper($text[$i]);
}
else
{
$text[$i] = mb_strtolower($text[$i]);
}
}
return $text;}
|
| |
|
|
|
|
|
|
|
для: Николай2357
(06.03.2010 в 22:36)
| | >А орядок важен?
В смысле порядок? Чтобы строго одна строчная, а следующая заглавная, а потом опять строчная? Нет. НаобОРоТ НуЖЕн ПолНыЙ бЕсПОряДоК. Хотя для начала и такой строгий беспорядок сойдёт. | |
|
|
|
|
|
|
|
для: gRoot
(06.03.2010 в 19:22)
| | А орядок важен? | |
|
|
|
|
|
|
|
для: sim5
(06.03.2010 в 20:46)
| | >И что, а вышеуказанные для русских и украинских написали значит? Русский текст может быть в кодировке 1251, и с ним прекрасно справится и strlen, и strtoupper и т.п., а модуль mb_string не для русских или украинских, а для мультибайтных строк, utf-8 например.
Да ти прав я не спорю,просто у меня било виставлено charset = utf8. | |
|
|
|
|