Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Операция explode с массивом разделителей 
:(
    Опции темы
мухр
Дата 10.10.2006, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Как бы осуществить операцию над строкой с разбиением её на массив по типу "explode", чтобы в качестве разделителя можно было использовать массив разделителей, или регулярное выражение в кач. разделителя?
PM WWW   Вверх
Наставник
Дата 10.10.2006, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 4.11.2004

Репутация: нет
Всего: 15



Добрый, мухр.

Простой выход, применять несколько раз функцию explode.
И каждый раз, вызывать explode с новым условием для разбиения строки.

Если же нужно использовать регулярное выражение, то preg_split(...).
Код

$str="My testing string, it is very big string %)";
$words=preg_split('/[\W]+/' $str);
print_r($words);



--------------------
Богатство языка определяет широту мысли
Персональный сайт >>
PM MAIL WWW   Вверх
-=Ustas=-
Дата 10.10.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



Цитата(мухр @  10.10.2006,  10:10 Найти цитируемый пост)
Как бы осуществить операцию над строкой с разбиением её на массив 

Ты к  строке и так можешь оращаться как к массиву. Зачем еще разбивать? Или что конкретно тебя интересует?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
SamDark
Дата 11.10.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 4
Всего: 38



Код

print $string[5];



--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
мухр
Дата 13.10.2006, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Цитата
Простой выход, применять несколько раз функцию explode.
И каждый раз, вызывать explode с новым условием для разбиения строки.
Получается единственно возможный выход, не совсем удобный. Разбитые подстроки разбиваются по новому условию и т. д. Массивов получается несколько - их потом придётся сливать в один.
Было бы проще значительно подставить массив разделителей, саму строку на входе - а на выходе готовый массив подстрок.
Но, похоже, такую функцию надо вручную писать.

Это сообщение отредактировал(а) мухр - 13.10.2006, 03:37
PM WWW   Вверх
ZlojEzh
Дата 14.10.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 2
Всего: 15



можно извернуться по-другому:
Код

  $str = "awer, wef. wefwefw wfewef; wefwef. wef";
  $str_for_explode = str_replace(array(',', '.', ';'), '###', $str); 
  // здесь ### - некоторая послед. символов, заведомо не встречающаяся в тексте
  $parts = explode('###', $str_for_explode);

но это действительно "изворот"
намного проще юзать preg_split('!(,|\.|;)!', $str);
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.