2013-03-02 3 views
5

私はフィルタの入力をFarsiだけにしたいと思いますが、filter_input()という正規表現は良い考えですが、 この問題を解決する方法はわかりませんが、私は検索しましたが、\ p {アラビア語}一方、ペルシャ文字はUnicodeで可能ですが、その正規表現についてはわかりません。ファルシ文字のフィルタ入力はどうですか?

+0

あなたは '\ pを{アラビア語}を試してみました'とそれが動作するかどうかを確認しましたか? 「アラビア語」とは、アラビア語のスクリプトを使用する言語のスクリプト(異なるUnicodeブロックを含む)を指します。 – nhahtdh

+0

ペルシャはアラビア語よりも4文字多いため、いいえ。 – user1695063

+0

私は、アラビア語やペルシア語自体ではなく、Unicodeアラビア語のスクリプトを意味します。言語は異なるかもしれませんが、Unicodeアラビア語のスクリプトはすべてをサポートしていますか? (ここに入力してみてください:http://www.regex101.com/r/tZ9dB4)。一致しない場合は、その例を表示できますか? – nhahtdh

答えて

8

この動作するはずです:

preg_match("(^[\x{0600}-\x{06FF}]*$)", 'فارسی');

をし、また、あなたがペルシャ語のためにすべてのこれらのフォームを使用することができます。

ペルシア文字

فارسی

/^([\x{0600}-\x{06EF}])+$/ 

ペルシャ数字

/^([\x{06F0}-\x{06F9}])+$/ 

スペースと半空間

とペルシャの単純なテキストاگرزمانومکان دراختیارمابود、10سالپیشازطوفاننوحعاشقتمیشدم

/^([\x{0600}-\x{06FF}| |\x{200C}])+$/ 
+0

のようなsthを示していますが、この問題は解決しましたが、どのように結果をエコー "فارسی"のように表示できますか? – user1695063

+0

preg_matchは式が0600と06FFにあるかどうかをチェックして、それが真であるかどうかを確認します。つまり、htmlページで 'فارسی'を印刷できないということですか? –

+0

preg_matchは成功を示していますが、印刷が必要な場合は1を返します。アラビア語の文字列PHPは奇妙な文字sthをسیب – user1695063

関連する問題