Исходный код
function word_filter($str) {
$filtered = '';
for ($i = 0; $i <= strlen($str) - 1; $i++) {
$char = substr($str, $i, 1);
if (ctype_alpha($char)) {
$filtered .= $char;
}
}
return $filtered;
}
Что не так в исходном коде
Здесь я вижу либо решение учебной задачи на циклы и ветвления, либо классический пример «велосипеда», свидетельствующий о глубоком незнании стандартной библиотеки языка.
Большинство задач на обработку строк успешно решаются с помощью регулярных выражений. Например, для данного фрагмента отлично подходит функция preg_replace
:
$filtered = reg_replace("/[[:^alpha:]]/u", '', $str);
Теория
- Благословение стандартных библиотек