input('url'); check_connection_to_mongodb(); if (!$url) { return response()->json([ 'error' => 'Missing required parameter `url`' ], 400); } $depth = $request->input('depth', 3); // default depth is 3 if not provided $visitedUrls = []; crawlWebsite($url, $depth, $visitedUrls); }); function check_connection_to_mongodb() { $connection = new MongoClient(); echo '
'; echo "IT WORKS"; die; print_r($connection); die; } function crawlWebsite($url, $depth, &$visitedUrls) { // Check if URL has already been visited if (in_array($url, $visitedUrls)) { return; } $visitedUrls[] = $url; // Use GuzzleHttp client to send HTTP requests $client = new Client(); $response = $client->get($url); // Check if the HTTP response is successful (status code 2xx) if ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300) { // echo $response->getBody()->getContents(); // Insert page info into the database // DB::table('pages')->insert([ // 'url' => $url, // 'content' => $response->getBody()->getContents() // ]); // Crawl the links on the page // if ($depth > 0) { // $body = $response->getBody()->getContents(); // $dom = new DOMDocument(); // @$dom->loadHTML($body); // $links = $dom->getElementsByTagName('a'); // foreach ($links as $link) { // $href = $link->getAttribute('href'); // if (filter_var($href, FILTER_VALIDATE_URL)) { // crawlWebsite($href, $depth - 1, $visitedUrls); // } // } // } } }