نتیجه کار بنده :
1.روش دوم در پست 22 کاملا اشتباهه .. چون همه کاکتر ها به علامت سئوال تبدیل میشن و بعد match میشن که در هر حالت 1 داده میشه
اگه مقدار پارمتر دوم unicode باشه برای تست اون باید encoding صفحه utf8 باشه .
اما در حالت کلی ما از form استفاه میکنیم. کاربر میاد اسمشو مینویسه و بعد submit رو میزنه
اطلاعات پست میشن و بررسی میشه :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form action="http://127.0.0.1/newtest.php" method="post">
<input type="text" name="str" />
<input type="submit" name="sub" />
</form>
<?php
function test($str)
{
return preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}0-9]+$#u",$str);
}
echo test($_REQUEST['str']);
?>
--------------------
<form action="http://127.0.0.1/newtest.php" method="post">
<input type="text" name="str" />
<input type="submit" name="sub" />
</form>
<?php
echo $_REQUEST['str'];
?>
در این حالت وقتی به page source نگاه میکنم به این حالته :

میشه در مورد این توضیح بدید ؟