У меня есть следующая функция: я хочу, чтобы она удаляла «альфа», когда это только одно слово, а не часть составного слова, такого как «alphadog». Теперь вместо этого я вижу только «собаку», и это нехорошо. Любая помощь?
function stripwords($string)
{
// build pattern once
static $pattern = null;
if ($pattern === null) {
// pull words to remove from somewhere
$words = array('alpha', 'beta', '-');
// escape special characters
foreach ($words as &$word) {
$word = preg_quote($word, '#');
}
// combine to regex
$pattern = '#\b(' . join('|', $words) . ')\b\s*#iS';
}
$print = preg_replace($pattern, '', $string);
list($firstpart)=explode('+', $print);
return $firstpart;
}
редактировать: привет, у меня есть другая проблема... я отредактировал выше с новой версией функции: она разделяет слова, корректирует пробелы, а затем делает что-то еще, что мне нужно, но не удаляет тире (или минус). .. что случилось? я что-то пробовал, но безрезультатно... спасибо