public function postPersist(LifecycleEventArgs $args)
 {
     $entity = $args->getEntity();
     $em = $args->getEntityManager();
     $templating = $this->container->get('templating');
     $mailer = $this->container->get('mailer');
     if ($entity instanceof Paysafecard) {
         $message = \Swift_Message::newInstance()->setSubject('Petición paysafecard desde todoapuestas')->setFrom('*****@*****.**')->setTo($entity->getEmail())->setContentType("text/html")->setBody($templating->render('ProjectFrontBundle:Paysafecard:registro-usuario.html.twig', array('object' => $entity)));
         $mailer->send($message);
         if (!is_null($entity->getEmailUsuario())) {
             $message = \Swift_Message::newInstance()->setSubject('Petición paysafecard desde todoapuestas')->setFrom('*****@*****.**')->setTo($entity->getEmailUsuario())->setContentType("text/html")->setBody($templating->render('ProjectFrontBundle:Paysafecard:registro-referido.html.twig', array('object' => $entity)));
             $mailer->send($message);
         }
         $message = \Swift_Message::newInstance()->setSubject('Petición paysafecard desde todoapuestas')->setFrom($entity->getEmailUsuario())->setTo('*****@*****.**')->setContentType("text/html")->setBody($templating->render('ProjectFrontBundle:Paysafecard:registro-administrador.html.twig', array('object' => $entity)));
         $mailer->send($message);
     } else {
         if ($entity instanceof Paysafecardbookies) {
             $message = \Swift_Message::newInstance()->setSubject('Registro en casas de apuestas')->setFrom('*****@*****.**')->setTo($entity->getEmail())->setContentType("text/html")->setBody($templating->render('ProjectFrontBundle:Paysafecardbookies:registro-usuario.html.twig', array('object' => $entity)));
             $mailer->send($message);
             $message = \Swift_Message::newInstance()->setSubject('Registro en casas de apuestas')->setFrom($entity->getEmail())->setTo('*****@*****.**')->setContentType("text/html")->setBody($templating->render('ProjectFrontBundle:Paysafecardbookies:registro-administrador.html.twig', array('object' => $entity)));
             $mailer->send($message);
         } else {
             if ($entity instanceof Fuente) {
                 if ($entity->getRss() != null) {
                     $data = simplexml_load_string(file_get_contents());
                     foreach ($data->channel->item as $noticia) {
                         $articulo = $em->getRepository('ProjectUserBundle:Noticia')->findByNombre($noticia->title);
                         if (!$articulo) {
                             $object = new Noticia();
                             $object->setNombre($noticia->title);
                             $object->setDescripcion($noticia->description);
                             $em->persist($object);
                             $em->flush();
                         }
                     }
                 }
             }
         }
     }
 }
 public static function jocPrivatAction($em, $rutaImagenes, $array, $class)
 {
     //$em = $class -> getDoctrine() -> getManager();
     //Ruta del listado de noticias de la web a analizar
     $url = 'http://noticias.jocprivat.com/';
     //Con la funcion file_get_contents se obtiene todo el html que devuelve la web señalada
     $htm = file_get_contents($url);
     //Luego de estudiar el codigo fuente de la web, se descubre que todos los elementos de interes
     //Se encuentran dentro del div LATERAL_IZQUIERDO_DETALLE, por ende se hace un explode para poder
     //Obtener los argumentos que esten antes o despues (adentro del div)
     $str = 'blog-posts hfeed';
     $arr = explode($str, $htm);
     $arr = explode('blog-pager', $arr[1]);
     $contenido = $arr[0];
     //Una vez adentro del div de nuestro interes, se observa que todos los enlaces que se necesitan
     //Comienzan por detalle_noticia.php?id=
     $enlaces = explode("http://noticias.jocprivat.com/2014", $contenido);
     /*
     Elly aqui note que tu pagina tiene una caracteristica especial se insertan enlaces que no nos interesan
     ejemplo http://www.sectorgambling.com/category/internacional/ y http://www.sectorgambling.com/author/1stwriter/
     Los enlaces de los articulos siempre comienzan por fecha asi que le coloque 2014
     */
     //Se hace un explode para obtener todos los codigos html que comiencen justo despues de detalle_noticia.php?id=
     $idNoticias = array();
     //Se realiza un ciclo for para obtener todos los ids de las noticias
     for ($i = 1; $i < count($enlaces); $i++) {
         $cadena = $enlaces[$i];
         //En estas cadenas resultados del ultimo explode hay mas contenido del que nos interesa
         //Un ejemplo de un link es detalle_noticia.php?id=83851" por ende se sabe que el codigo del id
         //termina justo antes de la comilla " para esto se usa strpos para ubicar la posicion y luego extraer el id
         $posicionFinal = strpos($cadena, "'");
         $id = substr($cadena, 0, $posicionFinal);
         if (strpos($id, '#') == false) {
             $idNoticias[$i - 1] = $id;
         }
         //Se comienca en $i-1 porque el primer link que devuelve esta web siempre es vacio y se requieren
         //son los numeros de los id
     }
     /*
     Para el listado de noticias de sector del juego por cada cuadricula hay 3 enlaces,
     uno en el texto, otro en la imagen y otro en el titulo, por ende despues de buscar los links
     apareceran duplicados, para evitar este problema se usa la funcion array_unique que elimina
     los duplicados, pero conserva las antiguas claves, por esto se debe usar foreach y no un for normal
     */
     $idNoticias = array_unique($idNoticias);
     /*
     Se procede a recorrer cada uno de los enlaces para extraer la data y almacenarla en la base de datos
     Se busca recorrer el listado de urls que se genero ejemplo:
     http://sectordeljuego.com/detalle_noticia.php?id=83851
     http://sectordeljuego.com/detalle_noticia.php?id=83850
     http://sectordeljuego.com/detalle_noticia.php?id=83849
     .
     .
     .
     Y asi sucesivamente, se ira recorriendo y obteniendo los textos y descargando una imagen por 
     cada articulo
     */
     foreach ($idNoticias as $key => $value) {
         ini_set('max_execution_time', 300);
         // Tener en cuenta que no es igual la ruta lista_noticias a detalle_noticia
         $urlNoticia = "http://noticias.jocprivat.com/2014" . $value;
         /*A partir de este punto, hay que analizar de nuevo la estructura del codigo
                     De una noticia en particular, en el caso de noticias hay que extraer 3 elementos siempre
                     Titulo, imagen (descargarla, si hay varias solo la principal) y contenido
         
                     Luego de analizar la data se observa que este caso sencillo, toda la data de interes se encuentra en el div
                     <div id="NOTICIA_DETALLE">
                     */
         //Con la funcion file_get_contents se obtiene todo el html que devuelve la web señalada
         $html = file_get_contents($urlNoticia);
         $busqueda = "BlogPosting'>";
         $html = explode($busqueda, $html);
         $html = $html[1];
         $html = explode('post-footer', $html);
         $html = $html[0];
         //$str = '<div id="left-area">';
         //$arr = explode($str, $html);
         //Se comienza a extraer los datos de interes, se comienza con el TITULO, el cual se almacena en
         //<div id="TITULAR_DETALLE">
         $busqueda = "name'>";
         $titulo = explode($busqueda, $html);
         $titulo = explode('</h3>', $titulo[1]);
         $titulo = $titulo[0];
         $titulo = trim($titulo);
         //REVISAR SI EXISTE ESTE ELEMENTO ROMPER EL CICLO PARA NO GUARDAR NOTICIAS REPETIDAS
         $elemento = $em->getRepository('ProjectUserBundle:Noticia')->findByNombre($titulo);
         if ($elemento) {
             break;
         }
         //Se procede a buscar el contenido el cual se encuentra en <div class="CUERPO_DETALLE">
         $busqueda = "articleBody'>";
         $contenido = explode($busqueda, $html);
         $contenido = explode('<div', $contenido[1]);
         $contenido = $contenido[0];
         $contenido = trim($contenido);
         //Se obtienen los datos basicos relacionados con la noticia
         $usuario = $em->getRepository('ProjectUserBundle:User')->find(1);
         $fuente = $em->getRepository('ProjectUserBundle:Fuente')->find(12);
         //Se almacena la noticia
         $object = new Noticia();
         $object->setFuente($fuente);
         $object->setUser($usuario);
         $object->setNombre($titulo);
         //$object -> setImagen($imagen);
         $object->setDescripcion($contenido);
         $em->persist($object);
         $em->flush();
         $array['contadorNoticias']++;
     }
     // $array = array('contadorImagenes' => $contadorImagenes, 'contadorPronosticos' => $contadorPronosticos, 'contadorNoticias' => $contadorNoticias);
     return $array;
 }