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 命令出错 - 未知变量 ID
我正在寻找的是删除所有 HTML 代码和奇怪字符的最简单脚本,用空格替换回车并留下点逗号和感叹号等标点符号。
有很多类似的问题,但似乎没有一个能真正正确地回答这个问题,并且这些脚本会删除所有字符,包括句子标点符号和外国阿拉伯字体或西班牙语。
例如,如果字符串包含 www.mygreatwebsite.com
更干净的脚本将返回看起来很奇怪的 wwwmygreatwebsitecom。
如果有人对‘嘿,这是一个很棒的网站!' 它还删除了感叹号。
我查找的所有类似问题都删除了所有字符....
我想用一个简单的正则表达式命令留下标点符号和任何外语字符,清除人们粘贴到表单中的所有内容,但留下标点符号。
自然回车会被空格代替。
有什么建议么?