Как грамотно разбить строку на слова?

P
На сайте с 06.01.2009
Offline
601
828

Здоравствуйте, помогите, пожалуйста, грамотно разбить строки на слова.

Есть набор строк, вот некоторые из них


$massiv = array('АнтичностьГеометрияПод камень', 'Под каменьПод обоиФлора', 'ФаунаАнтичность')
foreach ($massiv as $value) {

// как сделать грамотно, чтобы из $value получить
// из первой строки $z[0]=>Античность $z[1]=>Геометрия $z[2]=>Под камень
// из второй строки $z[0]=>Под камень $z[1]=>Под обои $z[2]=>Флора
// из 3-й строки $z[0]=>Фауна $z[1]=>Античность

}

помогите, пожалуйста, решить задачу

[umka]
На сайте с 25.05.2008
Offline
456
#1


$str="Под каменьПод обоиФлора";
preg_match_all('/([А-ЯЁ][а-яё\s]+)/u', $str, $arr);
print_r($arr[0]);

Result:


Array
(
[0] => Под камень
[1] => Под обои
[2] => Флора
)

P.S. u — это если у вас UTF-8

Лог в помощь!
siv1987
На сайте с 02.04.2009
Offline
427
#2

Если конкретно под этот случай, то что-то типа


$str = preg_replace('/(?<=.)([A-ZА-Я])/', ';\1', $str);
$arr = explode(';', $str);
P
На сайте с 06.01.2009
Offline
601
#3

Уважаемые специалисты, спасибо.

Ещё подскажите, пожалуйста.

Есди таблица БД с товарами будет весит 20 Мб - это нормально?

Спасибо ещё раз

D
На сайте с 25.11.2007
Offline
61
#4

Нормально :)

Если сайт с большим количеством запросов к базе - то желательно ее держать в оперативной памяти. Соответственно ее объем на сервере должен быть больше чем размер базы.

Но 20 мегабайт и небольшая посещаемость - имхо по современным меркам - ничто, так, что не переживайте :)

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

[umka]
На сайте с 25.05.2008
Offline
456
#5
postavkin:
Уважаемые специалисты, спасибо.
Ещё подскажите, пожалуйста.
Есди таблица БД с товарами будет весит 20 Мб - это нормально?
Спасибо ещё раз

Нормально для чего?

"Нормальность", которая вас скорее всего интересует, определяется не по размеру файла, а по количеству записей и корректности индексов.

P
На сайте с 06.01.2009
Offline
601
#6
Dosker:
Нормально :)
Если сайт с большим количеством запросов к базе - то желательно ее держать в оперативной памяти. Соответственно ее объем на сервере должен быть больше чем размер базы.
Но 20 мегабайт и небольшая посещаемость - имхо по современным меркам - ничто, так, что не переживайте :).

"Небольшая посещаемость" - 300 юзеров сутки ?

---------- Добавлено 25.09.2013 в 17:46 ----------

'[umka:
;12176320']Нормально для чего?
"Нормальность", которая вас скорее всего интересует, определяется не по размеру файла, а по количеству записей и корректности индексов.

25000 записей, но вас понял, смотря как обращаться к БД, в смысле LIKE %% или конкретное равенство при отборе значения. Если правильно понял, конечно.

D
На сайте с 25.11.2007
Offline
61
#7
postavkin:
"Небольшая посещаемость" - 300 юзеров сутки ?

Небольшая, если они не будут CTRL+F5 нажимать каждую секунду и сидеть на сайте 24 часа в сутки ... помимо пользователей еще боты сервер грузят бывает, но тут nginx спасает и кеширование - если по тарифному плану двигаться не хочется :)

300 уников дейли для самого простого шаред хостинга, не говоря уже о вируталах и дедиках - ничто, правда если у Вас скрипты не термоядерные и память с процессором не грызут дико.

Все относительно имхо :)

J
На сайте с 21.08.2011
Offline
78
#8
Dosker:
Небольшая, если они не будут CTRL+F5 нажимать каждую секунду и сидеть на сайте 24 часа в сутки

Поэтому относительной величиной нагрузки надо использовать не "количество юзеров", а "количество хитов" (хит = hit = click = клик = загрузка какой-либо страницы).

Это замечание для новичков, читающих тут. ;)

MO
На сайте с 25.04.2010
Offline
40
#9

попробуйте разбить по большим буквам и пробелам задача решается регуляркой

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий