الآن دوستانی که هنوز مشکا دارند، آیا encoding صفحه را utf8 گذاشته اند.
و یک مورد مهمتر این که خود صفحه را utf8 ذخیره میکنند یا نه؟
بله خوب است
خیر مفید نیست
فعلا بنویس تا ببینیم چی میشه!
الآن دوستانی که هنوز مشکا دارند، آیا encoding صفحه را utf8 گذاشته اند.
و یک مورد مهمتر این که خود صفحه را utf8 ذخیره میکنند یا نه؟
مسلما این طور نیست.
مگه چند سری کاراکتر فارسی داریم؟
utf8 یه استاندارده. اگر قرار باشه در همه جا یک نباشه که به چه درد میخوره؟
به هر حال یک چیزی هست
من روی یک سرور تست کردم
از کامپیوترم جواب غلط میگرفت و از نوت بوکم، جواب درست
یعنی به clinet ربط داره
حالا ربطش رو نمیدونم
خوب بستگی داره برنامهای که کد رو داخلش مینوشتی، صفحه را با چه encoding ذخیره میکرده.
مثلا یادم هست که dreamweaver8 به طرو پیشفرض صفحه را با western ذخیره میکرد و من همیشه باید در ابتدای نصب برنامه، باید پیشفرضش رو به utf8 تغییر میدادم.
notepad هم که به طور پیشفرض ascii ذخیره میکنه.
بستگی به برنامهی شما داره.
مگر نه وقتی همه چیز استاندارد شده باشه، دیگه مشکلی وجود نخواهد داشت. چون Utf8 یک استاندارد است. و استاندارد برای یکسانسازی است.
شما اگر متن را داخل صفحهی php گذاشته باشی که هیچ ربطی به client پیدا نمیکنه.
مگر اینکه متن را با از طریف فرم بفرستی.
اگر با فرم میفرستی، حتما در meta مشخص کن که صفحه utf8 هست.
سلام.من این تاپیک رو دیر پیدا کردم ولی خوشحالم که پیداش کردم.با تشکر دوباره از صابر طهماسبی یه سوال از اساتید داشتم :من کد زیر رو نوشتم که از توی اون رشته که دادم لینک رو جدا کنه.منتها خروجی برنامه ام چیزی که می خوام نبست.چیکار باید بکنم که اطلاعات بین دو تا تگ باز و بسته لینک رو کامل در یه خونه آرایه داشته باشم.اگر بشه که توی یه متغیر فقط رشته محتوی اطلاعات لینک باشه که چه بهتر.
لطفا راهنمایی بفرمایید.ممنونم
<?php
$contents = "this is the link<a href='http://www.ask.com' title='go to web search engine'>www.ask.com</a>end of example string";
print_r(preg_split("@(<a)(.*)(</a>)$@",$contents));
?>
اینم خروجی :
Array ( [0] => this is the linkwww.ask.comend of example string )
من می خوام که اطلاعات بین دو تا تگ باز و بسته فقط نمایش داده بشه یا در متغیری قرار بگیره.
من می خوام تو یه خونه آرایه ام href='http://www.ask.com باشه ولی توی خروجی من اصلا معلوم نیست اون قسمت با آدرس http و وبش کجا رفته!.شایدم اومده.چون مرورگر موقع خروجی www.ask.com رو بصورت لینک نشون میده.خلاصه گیج شده ام.الان اگه بخوام اون یه تیکه رو بصورت یه رشته تو یه خونه آرایه بگیرم این کد درسته؟با این الگو هم فکر می کنم باید میومد اما معلوم نیست کجاست!
دوست عزیز
من یه خواهشی دارم از شما.
لطف کنید رشتهی اصلی را بنویسید و در کنارش بگید که خروجی مورد انتظار شما باید دقیقا چی باشه.
با این توضیحاتی که شما میدید، قضیه داره پیچیدهتر میشه.
سلام آقای طهماسبی
من میخوام چک کنم متن یک تکست فارسی هست یا نه
فیلد من فیلد آدرس هست که ممکنه خط فاصله / یا اسلش یا خط تیره یا آندرلاین داشته باشه
میشه کدتونو برای این فیلد تغییر بدید ممنون میشم
چشم.این رشته
."this is the link<a href='http://www.ask.com' title='go to web search engine'>www.ask.com</a>end of example string";
اینم خروجی که من دوست دارم بگیرم.البته این ایده آلشه.ازکدی که نوشتم چنین انتظاری ندارم
href='http://www.ask.com'
من از کدی که نوشتم انتظار خط زیر رو داشتم که تویه یه خونه آرایه قرار بگیره.
href='http://www.ask.com' title='go to web search engine'>www.ask.com
بعد می خوام از روی این رشته یا رشته هایی که بدست میارم دوباره روشون کار کنم و اون خروجی ایده آله رو بگیرم.
البته درخوااست کد هم ندارم.این ایده آلش رو گفتم که اگر احیانا راه بهتری برای پیدا کردنش هست ر صورت امکان اشاره بفرمایید و ایراد اون قطعه کدی که نوشتم رو بگید که چرا اون چیزی که من انتظار دارم خروجی نم یده؟
ممنون
خوب.
بالاخره این هم درست شد.
preg_match_all('/(<a href=("\S*")(\s.*)*>.*a>)/i',$str, $match);
البته در این کد، من فرض را بر این گذاشتم که شما href را بین " قرار میدهید. اگر خواستید از ' استفاده کنید، میتوانید " را به ' تغییر دهید.
مقدار مورد نیازتان هم در $match[2] ذخیره شده است.
sلام آقا صابر
عزیز من توی صفحه اچ تی ام ال کاراکتر و رو utf8 تنظیم کردم
توی فایل reg.php هم توی قالب اچ تی ام ال با کاراکتر utf8
کد شما و توی notepad با یونیکد utf ذخیره میکنم به اینکه توی ورودی عدد باشه گیر نمیده اما وقتی توی سایتم از فرمم مقدار میاد به عدد حساسه میشه کمک کنید ؟
خیابان شریعتی4
این عبارت و میدم میگه درسته اما عبارت پست قبلی (خیابان طالب آملی کوچه دریایی ۴۲ پلاک ۲) و میگه لطفا فارسی وارد کنید
از چه patternی استفاده میکنید؟
از کد زیر استفاده کنید مطمئنا مشکل حل خواهد شد.
echo preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}\x{06F0}-\x{06F9}\x{0661}-\x{0669}0-9\n\r]+$#u",'کوچه دریایی ۴۲ پلاک ۲');
در ضمن کد یه مشکلی داشت که به جای + از * استفاده کرده بود
ممنون مشکل حل شد
میخوام نقطه و / و - و _ \ و مجازکنم میشه تغییرات بدید؟![]()
echo preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}\x{06F0}-\x{06F9}\x{0661}-\x{0669}0-9\n\r\\/\-\_\.]+$#u",'کوچه دریایی ۴۲ پلاک ۲');
سلام محمد جان
من کدی که شما قرار دادید رو برای جدا کردن کلمات فارسی بکار بردم اما علاوه بر کلمات فارسی کارکتر ها لاتین و علائم < و > / و _ - و * رو هم جدا کرد
words=preg_split("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}\x{06F0}-\x{06F9}\x{0661}-\x{0669}0-9\n\r]+$#u","$string");
من میخوام محتوای یه فایل html رو پس از بازکردن توی برنامه فقط کلمات فارسی رو جدا کنه هیچگونه کارکتر غیر فارسی توی برنامه نباشه
یا صلا اگر هم قرار کلمه لاتینی توی برنامه باشه فقط کلمات مربوط به متن باشه نه حروف و یا کارکتر های مربوط به تگ های html مثلا td یا tr یا div یا textarea اینها کارکتر های لاتین هستن اما مربوط به تگ های اچ تی ام ال هستند
برای مثال ما جمله زیر رو داریم و میخوایم
<br>
سلام بچه ها
لطفا نام خود را در فیلد زیر وارد کنید
<br />
<input type='text' id='name'>d
رشته مورد نظر ما
سلام بچه ها لطفا نام خود را در فیلد زیر وارد کنید
echo preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}0-9]*$#u",'دوست خوب');
میشه در مورد این عبارت منظم بیشتر توضیح بدهید
u آخر عبارت منظم برای چیست؟
با تشکر
آخرین ویرایش به وسیله satan_905 : پنج شنبه 03 آذر 1390 در 09:01 صبح
گند زدید به این تاپیک همتون .
مثلا داشت بنده خدا آموزش میداد.
اینجا قرار بود آموزش ریجکس بدن نه مشکلاتتون رو رفع کنن.
کل آموزش رو ول کردید چسبیدید به همون یه تیکه اعتبار سنجی فارسیش ، خوب از تابع جاوا اسکریپت برای تایپ فارسی استفاده کنید.
تو اینترنت جستجو کنید یه عالمه وجود داره .
از آقای صابر طهماسبی بسیار تشکر میکنم بابت این تاپیک و ازشون میخوام در مورد تابع preg_match_all توضیحات کاملی رو بگن