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;
}
ある人は、このスクリプト全体を 1 つのライナーに置き換えることを提案しました。
$clear = preg_replace('/[^A-Za-z0-9\-]/', '', urldecode($_GET['id']));
しかし、それは $_GET コマンドでエラーを出します - 不明な変数 ID
私が探しているのは、すべての HTML コードと奇妙な文字を削除し、キャリッジ リターンをスペースに置き換え、ドット カンマや感嘆符などの句読点を残す最も単純なスクリプトです。
似たような質問はたくさんありますが、この質問に正しく答えているものはないようです。これらのスクリプトは、文の句読点や外国のアラビア語のフォントやスペイン語を含むすべての文字を取り除きます。
たとえば、文字列に www.mygreatwebsite.com が含まれている場合
よりクリーンなスクリプトは、奇妙に見える wwwmygreatwebsitecom を返します。
誰かが「ねえ、これは素晴らしいウェブサイトだ! ' 感嘆符も削除します。
私が調べた同様の質問はすべて、すべての文字を削除します....
句読点と外国語の文字は、人々がフォームに貼り付けたすべてのものをクリアする 1 つの単純な正規表現コマンドを使用して IN のままにしたいと思いますが、句読点は残します。
当然、改行はスペースに置き換えられます。
助言がありますか?