واضح آرشیو وب فارسی:سایت ریسک: moontoise27-01-2009, 04:20 PMسلام ببخشید، من یه کد php می خوام که یک جمله رو بگیره و تعداد کلمه هایی که من تعیین می کنم نشون بده. و اگه می شه این کلمه ها رو جدا جدا بده به من. ممنون. هر کدی در این زمینه هست لطفا بدید. ممنون می شم as1385136528-01-2009, 08:34 AMبرای این که کلمه ها را به صورت جداگانه داشته باشید از کد زیر استفاده کن $a=explode(" ",$s); در این مثال مقدار متغیر s$ همان رشته مورد نظر می باشد و مقدار متغیر a$ هم به صورت آرایه ای از کلمه ها می باشد که شما می تونید ازش استفاده کنید neopersia29-01-2009, 12:56 AMسلام اگه متنی که میخواید استفاده کنید یه جورایی استاندارد باشه یعنی کلمه ها با یک اسپیس از هم جدا شده باشن و سطر جدید و تب و از این جور کاراکترها هم نداشته باشه کدی که as13851365 نوشت میتونه با جدا کردن کلمات با دلمیتر اسپیس هر کلمه رو در یه عضو آرایه ذخیره کنه که تعداد کلشون هم قابل شمارش هست (هم تعداد کل اعضا و هم تعداد تکرار هر عضو) برای متنها پیچیده تر باید از عبارات با قاعده (regular expression) استفاده کنید. تو کد زیر دو تا الگو برای رجکس گذاشتم چون دقیقاً متوجه نشدم منظورتون از سوال چی بود! (باید از یکی الگوها که توی متغیر pattern$ ذخیره شده استفاده کنید) الگوی اول همه کلمات موجود در متن رو جدا میکنه و کلمه ها رو در آرایه [occurance[0 ذخیره میکنه الگوی دوم هم میاد کلمه هایی رو که توی الگو مشخص کردید در متن جستجو میکنه. متغیر occurance$ هم یک آرایه چند بعدی هست که عضو اولش (ایندکس 0) شامل همه کلمات پیدا شده است و از بقیه اعضا هم که به همون ترتیب کلمات توی الگو هستند میشه تعداد هر کلمه رو پیدا کرد $str = " سلام ببخشید، من یه کد php می خوام که یک جمله رو بگیره و تعداد کلمه هایی که من تعیین می کنم نشون بده. و اگه می شه این کلمه ها رو جدا جدا بده به من. "; $pattern = "@[S]+@"; $pattern = "@(جمله)|(کلمه)@"; $count = preg_match_all($pattern, $str, $occurance); var_dump($occurance); count$ تعداد کلمه های پیدا شده رو بر میگردونه. خروجی الگو ها هم به ترتیب اینجوری میشه: الگوی اول: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! الگوی دوم: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! Amin eHelp29-01-2009, 12:48 PMسلام برای متنها پیچیده تر باید از عبارات با قاعده (regular expression) استفاده کنید. تو کد زیر دو تا الگو برای رجکس گذاشتم چون دقیقاً متوجه نشدم منظورتون از سوال چی بود! (باید از یکی الگوها که توی متغیر pattern$ ذخیره شده استفاده کنید) الگوی اول همه کلمات موجود در متن رو جدا میکنه و کلمه ها رو در آرایه [occurance[0 ذخیره میکنه الگوی دوم هم میاد کلمه هایی رو که توی الگو مشخص کردید در متن جستجو میکنه. متغیر occurance$ هم یک آرایه چند بعدی هست که عضو اولش (ایندکس 0) شامل همه کلمات پیدا شده است و از بقیه اعضا هم که به همون ترتیب کلمات توی الگو هستند میشه تعداد هر کلمه رو پیدا کرد $str = " سلام ببخشید، من یه کد php می خوام که یک جمله رو بگیره و تعداد کلمه هایی که من تعیین می کنم نشون بده. و اگه می شه این کلمه ها رو جدا جدا بده به من. "; $pattern = "@[S]+@"; $pattern = "@(جمله)|(کلمه)@"; $count = preg_match_all($pattern, $str, $occurance); var_dump($occurance); سلام یاسر جان. دیدم حرف از عبارات با قاعده شد، گفتم منم یه سوال بپرسم :31: توی php برای اینکه بخوایم با عبارات با قاعده، کاراکترهای یونیکد رو هم در نظر بگیریم، به چه صورت باید عمل کنیم؟ توی جاوااسکریپت که با استفاده از: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این کار رو انجام می دیم، یعنی تمامی کاراکترهای یونیکد رو جستجو می کنه. ولی می خوام بدونم توی php هم به همین صورته؟ بعد یه سوال دیگه، شرمنده ها... این @ اون بالا چیکار می کنه؟ یعنی کارش چیه؟ یه خرده توضیح می دی قربونت برم.:10: یه موضوع دیگه: اون S مگه نباید کوچیک باشه؟ چرا بزرگه؟ یا نه تو گفتی که: کلماتی که بینشون فاصله نیست رو نشون بده. آره؟ بازم شرمنده هم تاپیک به بیراهه کشیده می شه و هم خیلی بهت زحمت دادم:31: :11::10: neopersia30-01-2009, 06:50 AMسلام امین جان در مورد سوال اولت چیز زیادی نمیدونم چون تا حالا موردش پیش نیومده برام ولی میگردم ببینم چی دستگیرم میشه :31: خوب سوال سخت میپرسی برار :31: اون @ به عنوان دلیمیتر استفاده شده. جزو الگو نیست فقط اول و آخر الگو رو مشخص میکنه. حتماً نباید @ باشه مثلاً میشه # یا / یا " هم استفاده کرد ولی اون دابل کوته یه کم دردسر ساز ممکنه بشه چون آدمو مجبور میکنه یه سری کاراکتر رو دو بار اسکیپ کنه همه چی قاطی پاتی میشه! تو جاوا اسکرپتم اینو داریم اونجا از اسلش استفاده میشه (بدون کوتیشن) این S شامل کاراکترهایی میشه که whitespace نیستن یعنی برعکس s (اگه ازز s استفاده بشه به نظرم با preg_split سرراست تر از preg_match میشد) اون اگو همه عبارتهایی رو که بین کاراکترهاشون فضای خالی نیست و تعداد کاراکترهاش هم یکی یا بیشتر هست جدا میکنه. البته این فقط یه نمونه بود! الگو رو میشه کامل تر هم کرد مثلاً براش حداقل و حداکثر تعداد کاراکتر در نظر گرفت یا بعضی از کاراکترها رو ازش حذف کرد neopersia30-01-2009, 06:50 AMسلام امین جان در مورد سوال اولت چیز زیادی نمیدونم چون تا حالا موردش پیش نیومده برام ولی میگردم ببینم چی دستگیرم میشه :31: خوب سوال سخت میپرسی برار :31: اون @ به عنوان دلیمیتر استفاده شده. جزو الگو نیست فقط اول و آخر الگو رو مشخص میکنه. حتماً نباید @ باشه مثلاً میشه # یا / یا " هم استفاده کرد ولی اون دابل کوته یه کم دردسر ساز ممکنه بشه چون آدمو مجبور میکنه یه سری کاراکتر رو دو بار اسکیپ کنه همه چی قاطی پاتی میشه! تو جاوا اسکرپتم اینو داریم اونجا از اسلش استفاده میشه (بدون کوتیشن) این S شامل کاراکترهایی میشه که whitespace نیستن یعنی برعکس s (اگه ازز s استفاده بشه به نظرم با preg_split سرراست تر از preg_match میشد) اون اگو همه عبارتهایی رو که بین کاراکترهاشون فضای خالی نیست و تعداد کاراکترهاش هم یکی یا بیشتر هست جدا میکنه. البته این فقط یه نمونه بود! الگو رو میشه کامل تر هم کرد مثلاً براش حداقل و حداکثر تعداد کاراکتر در نظر گرفت یا بعضی از کاراکترها رو ازش حذف کرد سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 582]