Etiketleri işleme doğru yaklaşım girişi işleme üzerinde tercihlerine bağlıdır: Siz tamamen geçersiz etiketlerini kaldırmak, ya da denemek ve onlar geçerli olmak çok etiketleri temizlemek ya.
Geçerli karakterleri tanımlayan Beyaz Liste yaklaşım girişi temizliğinde kullanılmalıdır - Kara listeye çok sorunlu karakterler sadece vardır.
mb_internal_encoding('utf8');
$tags= 'to# do!"¤ fix-this str&ing';
$allowedLetters='\w';
// Note that the hyphen must be first or last in a character class pattern,
// to match hyphens, instead of specifying a character set range
$allowedSpecials='_+#-';
İlk yaklaşım tamamen geçersiz etiketleri kaldırır:
// The first way: Ignoring invalid tags
$tagArray = mb_split(' ', $tags);
$pattern = '^[' . $allowedLetters . $allowedSpecials . ']+$';
$validTags = array();
foreach($tagArray as $tag)
{
$tag = trim($tag);
$isValid = mb_ereg_match($pattern, $tag);
if ($isValid)
$validTags[] = $tag;
}
İkinci yaklaşım etiketleri temizlemeye çalışır:
// The second way: Cleaning up the tag input
// Remove non-whitelisted characters
$pattern = '[^' . $allowedLetters . $allowedSpecials .']';
$cleanTags = mb_ereg_replace($pattern, ' ', $tags);
// Trim multiple white spaces.
$pattern = '\s+';
$cleanTags = mb_ereg_replace($pattern, ' ', $cleanTags);
$tags = mb_split(' ',$cleanTags);
Replacing illegal characters with whitespace leads to problems
sometimes - for example the above "str&ing" is converted to "str ing".
Removing the illegal characters entirely would result in "string", which
is more useful in some cases.