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;
}
Один человек предложил заменить весь этот сценарий с одним вкладышем:Газа из HTML и злонамеренного кода, оставляя знаки препинания и иностранных языков в PHP
$clear = preg_replace('/[^A-Za-z0-9\-]/', '', urldecode($_GET['id']));
, но что дает ошибку с помощью команды $ _GET - неизвестную переменную ID
Я ищу самый простой скрипт для удаления всего кода HTML и странных символов, заменяя возврат каретки пробелами и оставляя знаки препинания, как точки и запятые.
Есть много аналогичных вопросов, но никто, кажется, действительно не отвечает на этот вопрос правильно, и эти сценарии отбрасывают всех символов, включая пунктуацию предложений и иностранные арабские шрифты или испанский.
, например, если строка содержит www.mygreatwebsite.com
уборщик скрипт возвратит wwwmygreatwebsitecom , который выглядит странно.
Если кто-то в восторге от чего-то типа «Эй, это отличный сайт! 'также удаляет восклицательные знаки.
Все подобные вопросы там, что я посмотрел удалить все символы ....
Я хотел бы оставить в пунктуации и любые символы иностранного языка с одной простой командой регулярных выражений, что очищает все люди вставляют в формы, но оставляют знаки препинания.
Естественно, возврат каретки будет заменен пробелами.
Любые предложения?
Из документации [ 'strip_tags'] (https://php.net/strip_tags): * Потому что' strip_tags() 'делает фактически не проверять HTML, частичные или сломанные теги могут привести к удалению большего количества текста/данных, чем ожидалось. * Справедливое предупреждение в случае появления нежелательных результатов. –
@MariM: да, но нет реальных способов предотвратить это, даже с помощью DOMDocument или с помощью регулярного выражения. –
Это сработало - красиво! Спасибо. Мне жаль, что я не смог бы СТРЕЛКИ, но моя репутация - не 15 - как я могу повысить свою репутацию? – Viktor