2013-10-03 19 views
3

這可能是一個愚蠢的問題修剪。我有一個網站正在運行,允許其用戶提交他們的內容。什麼樣的這些字符,以及如何我用PHP

有些用戶的用,我不希望看到奇怪的字符(我)打。這裏有一些:

▄ █ ▄ █ ▄ █ ▄ █ ▄ 

什麼樣的,我該如何修剪這些字符?我試圖像this一些方法,但我怎麼能做到這一點,而不必鬆開HTML特殊字符,例如© ® ...等

謝謝

+1

你可能想看看輸入驗證http://php.net/manual/en/function.preg-match.php正則表達式 –

+1

你讓中國的文字有關係嗎?你能限制它只用英語嗎? –

+0

角色不應該打破造型?這是如何運作的? – Nanne

回答

1

,你可以根據自己的Unicode屬性像帶出人物這樣的:

// strip out symbols 
echo preg_replace('/[\p{S}]+/u', '', 'Hello ▄ █ ▄ █ ▄ █ ▄ █ ▄ World'); 
// Hello World 

Demo

你可以閱讀更多關於the manual正則表達式的Unicode的能力。

不幸的是,上面的代碼也剔除了您的版權和商標符號;你可能要考慮這些字符making異常,例如: -

echo preg_replace('/[^\p{L}\p{Z}©®]+/u', '', 'Hello ▄ █ ▄ █ ▄ █ ▄ █ ▄ World © ®'); 
+0

我要尋找的.. – rzkio

+0

@rzkio注意,它也去掉你可能想擁有的符號。 –

+0

謝謝@Jack!這是我正在尋找的。 – rzkio

0

您可以使用ヶ輛()或用htmlspecialchars()。

ヶ輛()

此功能是相同的用htmlspecialchars()在各方面,除了與ヶ輛(),它們具有HTML字符實體等同的所有字符被轉換成這些實體。

用htmlspecialchars:

某些字符在HTML中具有特殊的意義,並應由HTML實體,如果他們要維護自己的意思表示。該函數返回一個字符串,其中包含一些轉換;翻譯是對日常網絡編程最有用的。如果您需要翻譯所有HTML字符實體,請改用htmlentities()。

的差被編碼。選項是一切(實體)或「特殊」字符,如&符號,雙引號和單引號,小於和大於(特殊字符)。

+0

ヶ輛()將打印HTML特殊字符作爲我不想一個純文本。但是,謝謝! – rzkio

相關問題