loadHTML($html); libxml_clear_errors(); $xpath = new DOMXPath($dom); // لیستی که دنبالش میگردیم $targets = [ 'دلار آمریکا' => 'usd', 'یورو' => 'euro', 'پوند انگلیس' => 'gbp', 'درهم امارات' => 'aed', 'سکه امامی' => 'coin_emami', 'سکه بهار آزادی' => 'coin_bahar', 'نیم سکه' => 'coin_half', 'ربع سکه' => 'coin_quarter', 'سکه گرمی' => 'coin_gram', 'طلای 18 عیار' => 'gold_18', 'مثقال طلا' => 'mesghal' ]; $results = []; // استراتژی: پیدا کردن تمام ردیف‌های جدول (tr) $rows = $xpath->query('//tr'); foreach ($rows as $row) { // گرفتن ستون‌ها (td) $cols = $xpath->query('.//td', $row); if ($cols->length > 1) { // ستون اول معمولا اسمه، ستون دوم یا سوم قیمته $nameRaw = trim($cols->item(0)->textContent); // نام ارز $priceRaw = trim($cols->item(1)->textContent); // قیمت (معمولا ستون دوم) (در برخی جداول ستون سوم است) // اگر قیمت خالی بود یا عدد نبود، ستون بعدی رو چک کن (چون ساختار جدولای ایران جیب متغیره) if (!preg_match('/[0-9]/', $priceRaw) && $cols->length > 2) { $priceRaw = trim($cols->item(2)->textContent); } // تمیزکاری نام (حذف پرانتز و ...) foreach ($targets as $searchName => $key) { // اگر اسم پیدا شده شامل کلمه مورد نظر ما بود if (strpos($nameRaw, $searchName) !== false) { // قیمت رو تمیز کنیم (فقط اعداد) $priceClean = preg_replace('/[^0-9]/', '', $priceRaw); if (!empty($priceClean)) { $results[] = [ 'key' => $key, 'name' => $searchName, 'full_name' => $nameRaw, 'price' => number_format($priceClean) ]; } // وقتی پیدا شد دیگه بقیه اسامی رو چک نکن برای این ردیف break; } } } } return $results; } // ========================================================= // منطق اصلی // ========================================================= $data = []; $source = ''; // 1. اول کش رو چک کن if (file_exists($cacheFile) && (time() - filemtime($cacheFile) < $cacheTime)) { $data = json_decode(file_get_contents($cacheFile), true); $source = 'داده‌های ذخیره شده (Cache)'; } else { // 2. اسکرپ کن $scraped = scrapeIranJib($targetUrl); if ($scraped && count($scraped) > 0) { $data = $scraped; file_put_contents($cacheFile, json_encode($data)); $source = 'دریافت مستقیم از ایران‌جیب'; } elseif (file_exists($cacheFile)) { // اگر نتونست بخونه ولی کش قدیمی هست $data = json_decode(file_get_contents($cacheFile), true); $source = 'خطا در دریافت (نمایش آرشیو)'; } } ?> نرخ بازار (منبع: ایران‌جیب)

نرخ ارز و طلا

منبع داده‌ها: وب‌سایت ایران‌جیب

عدم دریافت اطلاعات

سایت ایران‌جیب در حال حاضر پاسخ نمی‌دهد یا ساختار آن تغییر کرده است.

تومان
این سایت به صورت خودکار اطلاعات را از جداول سایت IranJib استخراج می‌کند.