function stripAlpha( $item )
{
$search = array(
'@<script[^>]*?>.*?</script>@si' // Strip out javascript
,'@<style[^>]*?>.*?</style>@siU' // Strip style tags properly
,'@<[\/\!]*?[^<>]*?>@si' // Strip out HTML tags
,'@<![\s\S]*?–[ \t\n\r]*>@' // Strip multi-line comments including CDATA
,'/\s{2,}/'
,'/(\s){2,}/'
);
$pattern = array(
'#[^a-zA-Z ]#' // Non alpha characters
,'/\s+/' // More than one whitespace
);
$replace = array(
''
,' '
);
$item = preg_replace( $search, '', html_entity_decode( $item ) );
$item = trim( preg_replace( $pattern, $replace, strip_tags( $item ) ) );
return $item;
}
Один человек предложил заменить весь этот скрипт одним вкладышем:
$clear = preg_replace('/[^A-Za-z0-9\-]/', '', urldecode($_GET['id']));
но это дает ошибку с командой $_GET - неизвестный идентификатор переменной
то, что я ищу, - это простейший скрипт для удаления всего HTML-кода и странных символов, замены возврата каретки пробелами и оставления знаков препинания, таких как точки, запятые и восклицательные знаки.
Есть много похожих вопросов, но ни один из них, похоже, не дает правильного ответа на этот вопрос, и эти скрипты удаляют все символы, включая пунктуацию в предложениях и иностранные арабские шрифты или испанский язык.
например, если строка содержит www.mygreatwebsite.com
более чистый скрипт вернет wwwmygreatwebsitecom, что выглядит странно.
Если кто-то взволнован чем-то вроде «Эй, это отличный веб-сайт! ' он также удаляет восклицательные знаки.
Все подобные вопросы, которые я искал, удаляют все символы....
Я хотел бы оставить IN знаки препинания и любые символы иностранного языка с помощью одной простой команды регулярного выражения, которая очищает все, что люди вставляют в формы, но оставляет знаки препинания.
Естественно, возврат каретки будет заменен пробелами.
Какие-либо предложения?