PDA

View Full Version : کمک در regular expresion



phpuser
پنج شنبه 17 فروردین 1391, 21:41 عصر
سلام
من یه صفحه html دارم که حدود 300 تا لینک و 100 تا عکس توش هست و دارم محتویات این صفحه رو با curl میخونم استاد گفته باید تمام لینک هایی که در href شون عبارت مثلا example.com هست رو با ریگولار اکسپرژن در بیارم همچنین عکس هایی که در src شون عبارت مثلا text هست رو در بیارم.
من تونستم با این مد به جواب نزدیک بشم :


$regex = '|<a.*?href="(.*?)"|';
preg_match_all($regex, $result, $parts);
$links = array_unique($parts[1]);
$regex = '|<img.*?src="(.*?)"|';
preg_match_all($regex, $result, $pics);
$images = array_unique($pics[1]);

اما همون طور که میبینید این کد تمام href ها و تمام src ها رو در میاره.
لطفا بگید چه تغییری باید توش بدم؟

MostafaEs3
جمعه 18 فروردین 1391, 00:17 صبح
اینو تست کن :


#<img.*?href="example.com".*?src="(.*?)".*>#

phpuser
جمعه 18 فروردین 1391, 15:49 عصر
اینو تست کردم جواب نمیده البته شما ظاهرا دقت نکردید به کدی که نوشتید چون اگر برای تگ img میخواستید بنویسید href چیه؟ اگر برای تگ a میخواستید بنویسید img و src چیه؟
دوستان لطف کنید این تاپیک رو بدون جواب نذارید. کارم گیر این است.
بیشتر توضیح میدم ببینید مثلا توی صفحه ای که من دارم بررسی میکنم 300 تا لینک هست با href های مختلف من باید با یک کد href هایی رو به دست بیارم که داخلشون عبارت google.com موجود است یعنی لینک هایی که به گوگل داده شده یعنی به جای اون .*? باید یه کد دیگه قرار بگیره.

در مورد تگ img هم همین طور باید src عکس هایی رو به دست بیارم که توشون عبارت مثلا text وجود داشته باشه.

MostafaEs3
جمعه 18 فروردین 1391, 16:01 عصر
اینو ببینید :


#<a.*?href="google.com".*>#

این الان کدهایی مثل این رو جمع میکنه :


<a href="google.com">


اینم برای عکس :


#<img.*?src="text".*>#


موفق باشید

phpuser
یک شنبه 20 فروردین 1391, 09:09 صبح
اینا خوبه اما اون چیزی که من میخاستم نیست.
این کدی که دادی دقیقا باید عبارت google.com اول لینک باشه و در غیر این صورت چیزی رو پیدا نمیکنه مثلا اگه آدرس لینک http://www.google.com باشه با این الگو match نمیشه.
در مورد عکس هم همین طور فرض کن آدرس عکس این جوریه : http://example.com/dir1/dir2/text/picturename.gif من میخام این عبارت text هر جایی از url که بود با این الگو بشه پیداش کرد.
خیلی ممنون

MostafaEs3
چهارشنبه 23 فروردین 1391, 18:04 عصر
خب عزیزم زودتر بگو ... یکبار میگی یک عبارت مشخص و یکبار میگی یک سری عبارت ... وایسا من تا آخر شب واست مینویسم یکی