عزيزي مجتمع StackOverflow ،
تم تكليفي لإنشاء برنامج نصي يستخدم CURL في PHP يأخذ إعلانات Craigslist وينشرها على صفحة أخرى.
الطريقة التي فكرت في القيام بها:
- تشغيل cURL مرة واحدة عبر صفحة الويب التي تحتوي على الإعلانات " https://amsterdam.craigslist.org/d/flats-housing-for-rent/search/apa؟lang=en&cc=gb "
- استخرج رابط كل إعلان وقم بتخزينه في مصفوفة (على سبيل المثال $ Listing ['links'])
- ثم قم بتشغيل cURL آخر على كل من الروابط في المصفوفة واستخراج جميع عناصر الإعلان ووضعها في $ القوائم = المصفوفة () على النحو التالي قوائم $ ['title'] ، قوائم $ ['price'] ، $ القوائم ["الوصف"]
- أخيرًا ، يجب أن أعرض المعلومات الملغاة باستخدام cURL ، ولكن يمكنني إدارة ذلك بنفسي
سؤالي الوحيد هو ، كيف يمكنني تشغيل cURL على نتائج cURL الأولى؟ أرغب في تشغيل حلقة foreach على قوائم $ ["الروابط"] واستخراج المعلومات من هناك.
أدناه هو الرمز الذي كتبته ، والذي يتخلص فقط من قوائم $ ["الروابط"] ، وبالتالي لا يعمل cURL الثاني داخل حلقة foreach.
هل يمكنك رجاءً تقديم المشورة بشأن كيفية المضي قدماً لتشغيلها؟
أشكركم على الدعم!
url = " https://amsterdam.craigslist.org/d/flats-housing-for-rent/search/apa؟lang=en&cc=gb "؛
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, $url);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch1);
$listings = array();
//Match listing link
preg_match_all(
"!<a href=\"https:\/\/amsterdam\.craigslist\.org\/apa\/d\/.*\/.*\.html\?lang=en&cc=gb\" class=\"result-image gallery\" data-ids=\".*\">
<span class=\"result-price\">.*<\/span>
<\/a>!", $result, $match);
$listings['link'] = $match[0];
foreach($listings['link'] as $link){
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $link);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, false);
$result_meta = curl_exec($ch2);
$meta = array();
preg_match_all("!<title>(.*)</title>!", $result_meta, $match);
$listings['title'] = $match[0];
}
// Return results
echo "<pre>";
print_r($listings['title']); // no title is stored in this array :(
die;
echo "</pre>";