PDA

View Full Version : سوال: یک سوال در مورد preg_match



persian-boy
شنبه 19 فروردین 1391, 00:23 صبح
سلام دوستان

بنده میخوام محتویات یک div رو بگیرم که البته داخلش پر از div و table و... هست .

از این کدی که نوشتم نتیجه ای نمیگیرم . میشه کمکم کنید ؟


$html = file_get_contents("http://www3.varzesh3.com/livescores.do");
preg_match('/<div id="main">(.*?)<\/font><div>/s',$html,$matches);
print_r($matches);

persian-boy
شنبه 19 فروردین 1391, 11:46 صبح
دوستان کسی نیست ؟ خیلی واجبه

MostafaEs3
شنبه 19 فروردین 1391, 13:25 عصر
کلا توی این انجمن فقط چند نفر هستن که بلدن با این عبارات منظم کار کنن !! یکیش خود من که یکمی بلدم ! اینو تست کن :



#<div.*id="main".*?>.*?</font>.*?<div>#


فکر کنم یک ایرادی داره ! برای خط بعدی ! کمی صبر کن اینو اصلاحش میکنم الان

persian-boy
شنبه 19 فروردین 1391, 19:00 عصر
ممنون از لطف شما

همونطور که عرض کردید این نمونه درست نیست .

persian-boy
یک شنبه 20 فروردین 1391, 12:06 عصر
منتظر راهنمایی دوستان هستیم

hamed-php
یک شنبه 20 فروردین 1391, 13:35 عصر
این رو تست کن


preg_match('/<div id= \'main\'>(.*)<\/div>/s',$html,$matches);

persian-boy
یک شنبه 20 فروردین 1391, 20:48 عصر
نمیشه متاسفانه . چند روزه وقتم رو گرفته این موضوع :(

persian-boy
دوشنبه 21 فروردین 1391, 10:05 صبح
در بین <div id=main> کلی تگ و کد html هست . ممکنه مشکل از اینجا باشه ؟

MostafaEs3
دوشنبه 21 فروردین 1391, 15:07 عصر
ببین مشکلش اینه که بعد از تگ div یک تگ هست که به عنوان کامنت زده شده ... اون علامت تعجب مشکل به وجود میاره ... من اگه وقت کنم تا شب یک کد مینویسم که مشکلی نداشته باشه

persian-boy
دوشنبه 21 فروردین 1391, 16:02 عصر
خیلی بزرگواری میکنید . ممنونم از شما .

منم احتمال میدادم

persian-boy
سه شنبه 22 فروردین 1391, 10:43 صبح
عذر میخوام تاپیک داشت میرفت پایین گفتم فراموشتون نشه

persian-boy
چهارشنبه 23 فروردین 1391, 10:57 صبح
دوستان راهنمایی نمیکنن ؟

MostafaEs3
چهارشنبه 23 فروردین 1391, 11:18 صبح
آقا واقعا شرمنده ! من فهمیدم اصلا نباید از preg_match استفاده کنی .. از strpos و substr استفاده کن :لبخند:

persian-boy
چهارشنبه 23 فروردین 1391, 13:34 عصر
به چه شکل ؟ جدول داینامیک رو میخوام بیرون بکشم

MMSHFE
چهارشنبه 23 فروردین 1391, 14:06 عصر
پیشنهاد میکنم از کلاس DOMDocument استفاده کنید.

MostafaEs3
چهارشنبه 23 فروردین 1391, 16:09 عصر
میتونید به گفته ی آقای شهرکی از همین کلاس DOM استفاده کنید .
ولی با همون substr و strpos میتونید مثلا div بالاترش رو مبدا و یک چیزی که پایینتر باشه رو مقصد قرار بدید ... چون جداول تغییر میکنن ولی div ها و چیزای دیگه تغییری نمیکنن .. دقیقا مثل CMS ها :لبخند:

eshpilen
چهارشنبه 23 فروردین 1391, 19:10 عصر
سلام دوستان

بنده میخوام محتویات یک div رو بگیرم که البته داخلش پر از div و table و... هست .

از این کدی که نوشتم نتیجه ای نمیگیرم . میشه کمکم کنید ؟


$html = file_get_contents("http://www3.varzesh3.com/livescores.do");
preg_match('/<div id="main">(.*?)<\/font><div>/s',$html,$matches);
print_r($matches);

شما چرا اینطوری نوشتی؟!
چیزی که میگی چه ربطی به تگ font داره که اونجا گذاشتی.
بعدم این مثال رو نگاه کن ببین درسته یا نه:

<?php
$html = '<div id="main"><div id="j"><h3>a</h3><div><b>g</b></div></div>';
preg_match('/<div id="main">(.*)<\/div>/s',$html,$matches);
echo '<pre>';
echo htmlspecialchars(print_r($matches, true), null, 'UTF-8');
echo '</pre>';
?>