public function attachExternalLinks($link, $urls, $blacklist) { $existing_el = array_pluck($link->externals->toArray(), 'id'); foreach ($urls as $url) { if (!in_array($url, $existing_el)) { $parsed_url = parse_url($url); if ($this->checkIfContainsBlackListItem($url, $blacklist) || isset($parsed_url['path']) && strlen($parsed_url['path']) < 2 || !filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED) || !filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) || strpos($url, 'ailto:') || strpos($url, 'keywords/') || strpos($url, 'entities/')) { $external_links_object = ExternalLinks::make($link->id, $url, 0, 1); } else { $external_links_object = ExternalLinks::make($link->id, $url); } $this->external_links->save($external_links_object); } } }