Спустя 39 минут, 26 секунд (13.09.2011 - 18:41) Winston написал(а):
Цитата (ShalfeyShalfeev @ 13.09.2011 - 18:02) |
не переводится строка русская в массив. |
Почему это ?
$str = 'Строка';
echo $str[0] . '<br/>';
echo $str[1] . '<br/>';
echo $str[2] . '<br/>';
Очень даже переводится.
Спустя 20 секунд (13.09.2011 - 18:41) inpost написал(а):
Показывай код, как ты пытаешься сделать.
Спустя 23 часа, 38 минут, 27 секунд (14.09.2011 - 18:20) ShalfeyShalfeev написал(а):
$str="авс";
$arr=str_split($str);
print"<PRE>";
print_r($arr);
print"<PRE>";
Спустя 15 минут, 24 секунды (14.09.2011 - 18:35) YVSIK написал(а):
echo $str='авс'. '<br/>';
echo $arr=str_split($str). '<br/>' ;
echo '<br>Гость';
примерно так
Спустя 5 минут, 23 секунды (14.09.2011 - 18:41) Winston написал(а):
Цитата (ShalfeyShalfeev @ 14.09.2011 - 18:20) |
$str="авс"; $arr=str_split($str); print"<PRE>"; print_r($arr); print"<PRE>"; |
Это должно успешно отработать. А какая у вас кодировка файла ?
Спустя 8 минут, 23 секунды (14.09.2011 - 18:49) YVSIK написал(а):
Спустя 1 минута, 20 секунд (14.09.2011 - 18:50) Winston написал(а):
YVSIK
Да нет, здесь дело в кодировке...
Да нет, здесь дело в кодировке...
Спустя 2 минуты, 55 секунд (14.09.2011 - 18:53) walerus написал(а):
1) Файл( скрипт ) в какой кодировке ? должен быть в utf-8 без BOM.
2) $str="авс"; - это Русские буквы ? или латиница.
3) Строка разбивается, но выдаются иероглифы.
если все сделать правильно, то:
2) $str="авс"; - это Русские буквы ? или латиница.
3) Строка разбивается, но выдаются иероглифы.
если все сделать правильно, то:
function f_str_split( $string = '' )
{
if ( is_array( $string ) )
return $string;
$string = iconv('utf-8', 'windows-1251', $string); // Сменили кодировку на кирилицу
$array = str_split( $string );
foreach( $array as $key => $value)
$array[$key] = iconv( 'windows-1251', 'utf-8', $value ); // Сменили кодировку на латиницу
return $array;
}
$str = "авс";
echo "<PRE>";
print_r( f_str_split( $str ) );
echo "</PRE>";
?>
Спустя 5 минут, 52 секунды (14.09.2011 - 18:59) Winston написал(а):
Цитата (walerus @ 14.09.2011 - 18:53) |
foreach( $array as $key => $value) $array[$key] = iconv( 'windows-1251', 'utf-8', $value ); // Сменили кодировку на латиницу return $array; |
Можно проще
return array_map(create_function('$item', 'return iconv( "windows-1251", "utf-8", $item);'), $array);
Спустя 8 минут, 18 секунд (14.09.2011 - 19:07) walerus написал(а):
Winston - буду скоро брать у тебя курсы по изучению встроенных функций )))
Спустя 1 минута, 4 секунды (14.09.2011 - 19:08) Winston написал(а):

Спустя 10 минут, 23 секунды (14.09.2011 - 19:19) ShalfeyShalfeev написал(а):
Ура всё получилось спасибо братья , теперь буду разбираться с кодом. Главное понять , а не просто скопировать Спасибо walerus по твоему скрипту получилось. Читаю книгу Крис Ньюман " 10 минут на урок". Там азы . Без форума не разберёшся.
Спустя 28 минут, 31 секунда (14.09.2011 - 19:47) twin написал(а):
function f_str_split( $string = '' )
{
if ( is_array( $string ) )
return $string;
preg_match_all('#([\s\S]{1})#us', $string, $out);
return $out[0];
}
$str = "Кириллица";
echo "<PRE>";
print_r( f_str_split($str) );
echo "</PRE>";
Спустя 11 минут (14.09.2011 - 19:58) walerus написал(а):
twin
Человек изучает азы ), а тут и я курить буду минут 3 - 5

Человек изучает азы ), а тут и я курить буду минут 3 - 5

Спустя 1 минута, 28 секунд (14.09.2011 - 20:00) Winston написал(а):
twin
Я тоже, что-то не въехал с регуляркой
Я тоже, что-то не въехал с регуляркой

Спустя 3 минуты, 11 секунд (14.09.2011 - 20:03) twin написал(а):
А не надо изучать азы неправильно)) Накой столько телодвижений, когда одной строкой можно решить.
И чего там курить... Простейшая регулярка и функция, описанная в мануале.
\s - пробел, \S - непробел. [\s\S] - пробел + непробел (любой символ) {1} - в количестве 1 штука.
И чего там курить... Простейшая регулярка и функция, описанная в мануале.
\s - пробел, \S - непробел. [\s\S] - пробел + непробел (любой символ) {1} - в количестве 1 штука.
Спустя 3 минуты, 59 секунд (14.09.2011 - 20:07) Winston написал(а):
Цитата (twin @ 14.09.2011 - 20:03) |
\s - пробел, \S - непробел. [\s\S] - пробел + непробел (любой символ) {1} - в количестве 1 штука. |
Это понятно, а модификатор "u" зачем ?
Спустя 2 минуты, 13 секунд (14.09.2011 - 20:09) twin написал(а):
Спустя 1 минута, 46 секунд (14.09.2011 - 20:11) Winston написал(а):
Цитата (twin @ 14.09.2011 - 20:09) |
Вот почитай тут. Много интересного |
Знаю, я же писал большинство этих статей по регуляркам

Цитата (twin @ 14.09.2011 - 20:09) |
u - модификатор для UTF |
Блин, дык у него же в CP1251 походу

Спустя 2 минуты, 44 секунды (14.09.2011 - 20:14) twin написал(а):
Нет. утф у него. В CP строку можно разбивать в массив так $str[0] и функция str_split() тоже работает
Спустя 1 минута, 15 секунд (14.09.2011 - 20:15) killer8080 написал(а):
twin
регулярку можно ещё сократить
регулярку можно ещё сократить
'#.#us'
Спустя 15 минут, 45 секунд (14.09.2011 - 20:31) twin написал(а):
Цитата (killer8080 @ 14.09.2011 - 17:15) |
twin регулярку можно ещё сократить '#.#us' |
Можно. Но если быть дотошным до конца, то нужен второй параметр:
function f_str_split( $string = '', $lenght = 1 )
{
if ( is_array( $string ) )
return $string;
preg_match_all('#.{'. $lenght .'}#us', $string, $out);
return $out[0];
}
$str = "Кирил лица";
echo "<PRE>";
print_r( f_str_split($str, 2));
echo "</PRE>";