Example #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $url = Url::where('visited', 'no')->first();
     while ($url !== false) {
         $urlText = file_get_contents($url->url);
         //Obtendo conteúdo da URL
         //Obtendo as URLs do conteúdo
         preg_match_all('/<a href=["\']?((?:.(?!["\']?\\s+(?:\\S+)=|[>"\']))+.)["\']?>/i', $urlText, $urlsArr);
         //Obtendo os E-mails do conteúdo
         preg_match_all('/\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b/i', $urlText, $emailsArr);
         if (isset($urlsArr[1])) {
             $urlOriginalInfo = parse_url($url->url);
             //Dividindo as informações da URL
             foreach ($urlsArr[1] as $urlObtida) {
                 $urlObtidaInfo = parse_url($urlObtida);
                 //Dividindo as informações da URL obtida no conteúdo
                 $scheme = isset($urlObtidaInfo['scheme']) ? $urlObtidaInfo['scheme'] : $urlOriginalInfo['scheme'];
                 $host = isset($urlObtidaInfo['host']) ? $urlObtidaInfo['host'] : $urlOriginalInfo['host'];
                 $novaUrl = $scheme . "://" . $host . $urlObtida;
                 $urlObtidaJaExistente = Url::where('url', $novaUrl)->count();
                 if (!$urlObtidaJaExistente) {
                     // Não estando, insere a URL
                     $urlNova = new Url();
                     $urlNova->url = $novaUrl;
                     $urlNova->visited = "no";
                     $urlNova->save();
                 }
             }
         }
         if (isset($emailsArr[1])) {
             foreach ($emailsArr as $emailObtido) {
                 $emailObtidoJaExistente = Email::where('email', $emailObtido)->count();
                 if (!$emailObtidoJaExistente) {
                     // Não estando, insere o e-mail
                     $emailNovo = new Email();
                     $emailNovo->email = $emailObtido;
                     $emailNovo->save();
                 }
             }
         }
         //Alterando a URL visitada para visited => yes
         $url->visited = "yes";
         $url->save();
         //Pegando a próxima URL
         $url = Url::where('visited', 'no')->first();
     }
 }
 public function short($code)
 {
     $url = Url::getBy(array('short' => $code));
     $path = $url->getAttribute('long');
     return redirect()->away($path);
 }