format('Y-m-d H:i:s'); // Altın kurları $goldResponse = $this->fetchData('https://altin.doviz.com'); $domGold = new \DOMDocument(); @$domGold->loadHTML($goldResponse->body()); $xpathGold = new \DOMXPath($domGold); $elementsGold = $xpathGold->query("//*[@data-socket-key]"); foreach ($elementsGold as $element) { $attrGold = $element->getAttribute('data-socket-key'); $typeGold = $element->getAttribute('data-socket-attr'); $valueGold = NumberFormatter::commaToDot($element->nodeValue); if (trim($attrGold) !== '') { $nameGold = strtoupper(str_replace("-", "", $attrGold)); $fullNameGold = $nameGold; $nameGold = str_replace("14", "OD", $nameGold); $nameGold = str_replace("18", "OS", $nameGold); $nameGold = str_replace("22", "YI", $nameGold); $nameGold = str_replace("GRAMALTIN", "GRA", $nameGold); $nameGold = str_replace("GRAMPLATIN", "GPL", $nameGold); $nameGold = str_replace("GRAMHASALTIN", "HAS", $nameGold); $nameGold = strtoupper(substr($nameGold, 0, 3)); $except = ['USD', 'EUR', 'GBP', 'XU1', 'BIT']; if (in_array($nameGold, $except)) { continue; } if ($typeGold == "bid") $data[$nameGold]['Buying'] = (float)$valueGold; if ($typeGold == "ask") $data[$nameGold]['Selling'] = (float)$valueGold; if ($typeGold == "s") $data[$nameGold]['Selling'] = (float)$valueGold; if ($typeGold == "c") $data[$nameGold]['Change'] = round((float)$valueGold, 2); $data[$nameGold]['Type'] = "Gold"; $data[$nameGold]['Name'] = $fullNameGold; } } // JSON dosyasını kaydet Storage::put('gold/today.json', json_encode($data, JSON_UNESCAPED_UNICODE)); return $data; } private function fetchData($url) { return Http::withHeaders([ 'User-Agent' => 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10', 'Accept-Language' => 'en' ])->get($url); } }