[Technical Issue] PHP/MySQL - Регулярен израз като разделител на explode()
Имам един низ който искам да обърна в масив, но искам да отделя всяка дума с регулярен израз. С долната функция хващам цяла дума например:
function substr_count_array($haystack, $needle){
$initial = 0;
$bits = explode(' ', $haystack);
foreach ($needle as $substring) {
if (!in_array($substring, $bits))
continue;$initial += substr_count($haystack, $substring);
}
return $initial;
}
Проблемът е, че хваща стринга "animal", но не и "animals". А ако го направя по следния начин:
function substr_count_array2($haystack, $needle){
$initial = 0;
foreach ($needle as $substring) {
$initial += substr_count($haystack, $substring);
}
return $initial;
}
лови, да кажем 'а' след като се съдържа в стринга "animals" и връща 2. Дайте идея как да го explode() като ползвам регулярка като разделител, за да мога да търся за цялата дума + каквото и да е след или пред нея (защото не мога да знам какво следва след или предхожда думата). Защото сега търси думите разделени със space.
Възможно ли е с preg_split() да стане? Ако да - как?
Защото така:
preg_split('(.+?)', $haystack)
preg_split('(.*?)', $haystack);
или така:
preg_split('/^\S{6,}\z/', $haystack);
не работи. А със [\s\S] не хваща разстояния.
П.С. Да отбележа, че въпросът не е свързан с домашните.
Тъкмо го направих така. Благодаря все пак за времето и примера :)
Няма проблем, може ли само да кажеш как си форматира кода в първия пост? :)
Format -> Formats -> Blocks -> Blockquote и оцветих с text-color по отделно всяка keyword.