S.M
4 سال پیش توسط S.M مطرح شد
4 پاسخ

کار با پکیج Dom-Crawler در PHP

سلام من دارم با پکیج Dom-Crawler در php کار میکنم و اطلاعات یک سایت رو میگیرم ، الان می خوام این متن هارو جدا بکنم از بین این تگ های span و داخل یک آرایه ذخیره بکنم. میشه راهنماییم کنید🙁

<body>
<span class="mini-flag flag-us"></span>دلار
<span class="mini-flag flag-eu"></span>یورو
<span class="mini-flag flag-gb"></span>پوند انگلیس
<span class="mini-flag flag-ae"></span>درهم امارات 
<span class="mini-flag flag-tr"></span>لیر ترکیه 
<span class="mini-flag flag-cn"></span>یوان چین 
<span class="mini-flag flag-jp"></span>ین ژاپن 
<span class="mini-flag flag-ca"></span>دلار کانادا 
<span class="mini-flag flag-au"></span>دلار استرالیا 
<span class="mini-flag flag-nz"></span>دلار نیوزیلند 
<span class="mini-flag flag-ch"></span>فرانک سوئیس 
<span class="mini-flag flag-af"></span>افغانی 
<span class="mini-flag flag-se"></span>کرون سوئد 
<span class="mini-flag flag-ru"></span>روبل روسیه 
<span class="mini-flag flag-az"></span>منات آذربایجان 
<span class="mini-flag flag-am"></span>درام ارمنستان 
</body>

ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش آپدیت شد
0

سلام با کد زیر

$url = 'url-you';
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        curl_close($curl);
        $r = getStr($result,'<span class="mini-flag flag-am">','</span>');

متغییر $r نتیجه شماس
میتونی با یک حلقه اول کل div مدنظرتو بگیری بعدش توش کاوش کنی.


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش آپدیت شد
1

با regex میتونی این کار رو ساده کنی ولی چیزی بین تگ های span نیست

منظورت بین ۲ تا تگ هست؟

$re = '/<span class=".*?"><\/span>(.*)/m';
$str = '<body>
<span class="mini-flag flag-us"></span>دلار
<span class="mini-flag flag-eu"></span>یورو
<span class="mini-flag flag-gb"></span>پوند انگلیس
<span class="mini-flag flag-ae"></span>درهم امارات 
<span class="mini-flag flag-tr"></span>لیر ترکیه 
<span class="mini-flag flag-cn"></span>یوان چین 
<span class="mini-flag flag-jp"></span>ین ژاپن 
<span class="mini-flag flag-ca"></span>دلار کانادا 
<span class="mini-flag flag-au"></span>دلار استرالیا 
<span class="mini-flag flag-nz"></span>دلار نیوزیلند 
<span class="mini-flag flag-ch"></span>فرانک سوئیس 
<span class="mini-flag flag-af"></span>افغانی 
<span class="mini-flag flag-se"></span>کرون سوئد 
<span class="mini-flag flag-ru"></span>روبل روسیه 
<span class="mini-flag flag-az"></span>منات آذربایجان 
<span class="mini-flag flag-am"></span>درام ارمنستان 
</body>';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

هرچیزی که از Dom-Crawler میگیری رو بریز توی متغیر str

به حلقه نیاز نداره $matches یک ارایه هست که باید group 1 رو بگیری


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش مطرح شد
2

جالب بود دمت گرم @Rp76


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
1

@juza66 خواهش میکنم

راه حل شما هم جالب بود
من تا حالا ندیده بودم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام