پیدا نمودن کلمه ی مورد نظر با preg_match_all

robic

کاربر فعال
سلام دوستان ، یک راهنمائی می خواستم در مورد دستور preg_match_all

می خواستم ببینم چطوری میشه به کد زیر پترنی اضافه کرد که کلمه ی مورد نظر رو جستجو بکنه:

PHP:
preg_match_all ("/a[\s]+[^>]*?href[\s]?=[\s\"\']+"."(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/",$var, &$matches);

 

yakoza

Well-Known Member
عجب !
خودش که پترن داره

"/a[\s]+[^>]*?href[\s]?=[\s\"\']+"."(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/"
 

robic

کاربر فعال
برای yakoza:

بله پترن داره ، ولی این پترن جداسازی URL

هستش ، که نوعی استخراج کننده هستش

تنها مشکلی که داره اینه که اون آدرسی که

من می خوام استخراج نمی کنه ، به طور مثال

من می خوام تمامی آدرس هایی که name

توی اونها به کار رفته استخراج بشه ولی با

چند تا از مدیفایر هاشم امتحان کردم ولی نشد

، حالا می خواستم ببینم چطور میشه به این پترن

یک تکه پترن دیگه اضافه کردن تا تنها آدرس هایی

مثل آدرس زیر رو استخراج کنه ؟

HTML:
  http://www.domain.com/name
 

robic

کاربر فعال
برای firebird:

کد شما هم عملی نبود ، و نتیجه استرینگ خالی بود ، البته اینو هم بگم که آدرس هایی که من دارم استخراج می کنم به طور کامل به این شکل هستن :

HTML:
http://www.domain.com/name/somename

 

firebird

Member
ببین شما باید متنی که ازش داری استخراج میکنی رو یک مقدار حتی کمشو بذاری که بشه براش regex نوشت. ضمن اینکه اصلاً ننوشتی از این پترنی که میخوای کدوم قسمتها ثابت هست و کدوم قسمتها تغییر میکنه.
اگه domain.com ثابت باشه و name و somename عوض بشن کدش میشه این:
PHP:
preg_match_all('%http://www\.domain\.com/[^/]+/.*$%', $subject, $result, PREG_PATTERN_ORDER);
 

robic

کاربر فعال
برای firebird :

تو این آدرس فقط somename
متغیره ، بقیه ثابتند .
 

جدیدترین ارسال ها

بالا