function get_all_freelancer($conn) { require 'DBconfig.php'; require_once 'Proyecto.php'; require_once 'Idioma.php'; require_once 'Ciudad.php'; require_once 'Profesion.php'; $result = $conn->query('SELECT * FROM ' . $mysql_database . '.freelancer'); $res = $result->fetch_row(); $return = array(); $campos = array("freelancer_id", "nombre", "correo", "disponibilidad", "rating", "facebook", "twitter", "instagram", "password", "celular", "competencias", "profesion_id", "ciudad_id"); while (!is_null($res)) { $return[] = limpiar_freelancer($res, $campos); $res = $result->fetch_row(); } $size = count($return); for ($i = 0; $i < $size; $i++) { $return[$i]["proyectos"] = get_proyectos($conn, $return[$i]['freelancer_id']); $return[$i]["profesion"] = get_profesion($conn, $return[$i]['profesion_id']); $return[$i]["idiomas"] = get_idiomas($conn, $return[$i]['freelancer_id']); $return[$i]["ubicacion"] = get_ubicacion($conn, $return[$i]['ciudad_id']); unset($return[$i]["ciudad_id"]); unset($return[$i]["profesion_id"]); } return $return; }
function reconoce_patrones_master($cadena, $id, $dic_profesion) { //Extrae el nombre del renglon -------------------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------------------------------------------------ preg_match("/.*?[\\s\\S]?\\/[\\s\\S]?/", $cadena, $nombre); //echo $nombre[0] . "\n"; $cadena = str_replace($nombre[0], "", $cadena); $resultado = array(); $resultado["id"] = $id; $resultado["nombre"] = ""; $resultado["tipo_entidad"] = array(); $resultado["dato_natalidad"] = ""; $resultado["anio_nacimiento"] = -1; $resultado["anio_muerte"] = -1; $resultado["lugar_nacimiento"] = ""; $resultado["lugar_muerte"] = ""; $nombre_sp = explode(",", preg_replace("/[\\s\\S]?\\/[\\s\\S]?\$/", "", preg_replace("/^[\\W]*/", "", $nombre[0]))); if (!isset($nombre_sp[1])) { $nombre_sp = $nombre_sp[0]; $resultado["tipo_entidad"]["validacion_nombre_persona_inicial"] = false; } else { $nombre_sp = $nombre_sp[1] . " " . $nombre_sp[0]; $resultado["tipo_entidad"]["validacion_nombre_persona_inicial"] = true; } $resultado["nombre"] = normaliza_nombre($nombre_sp); // Extrae los datos de nacimiento del renglon -------------------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------------------------------------------------ // El procedimiento es obtener una cadena de longitud 40 y buscar patrones en ese rango, que es donde se supone que deben estar los datos // de natalidad y mortandad del individuo $cadena_temp = substr($cadena, 0, 40); preg_match("/(n\\.)?.?(m\\.)?\\(([\\d]{4}){1}-?([\\d]{4})?\\)./", $cadena_temp, $dato_natalidad); //var_dump($dato_natalidad); //Tiene año de nacimiento o muerte if (count($dato_natalidad) > 0) { $resultado["dato_natalidad"] = substr($cadena_temp, 0, strpos($cadena_temp, $dato_natalidad[0]) + strlen($dato_natalidad[0])); $cadena = str_replace($resultado["dato_natalidad"], "", $cadena); $cadena = preg_replace("/^[\\W]*/", "", $cadena); $resultado["tipo_entidad"]["validacion_dato_vida"] = "completo"; } else { //Verifica si no tiene años pero tiene luegar de nacimientoo muerte preg_match("/(m\\.)[\\s\\S](\\w)+(\\.)?/", $cadena_temp, $dato_natalidad); if (count($dato_natalidad) > 0) { $resultado["dato_natalidad"] = substr($cadena_temp, 0, strpos($cadena_temp, $dato_natalidad[0]) + strlen($dato_natalidad[0])); $cadena = str_replace($resultado["dato_natalidad"], "", $cadena); $cadena = preg_replace("/^[\\W]*/", "", $cadena); $resultado["tipo_entidad"]["validacion_dato_vida"] = "nacimiento_muerte"; } else { preg_match("/^(n\\.)[\\s\\S](\\w)+(\\.)?/", $cadena_temp, $dato_natalidad); if (count($dato_natalidad) > 0) { $resultado["dato_natalidad"] = substr($cadena_temp, 0, strpos($cadena_temp, $dato_natalidad[0]) + strlen($dato_natalidad[0])); $cadena = str_replace($resultado["dato_natalidad"], "", $cadena); $cadena = preg_replace("/^[\\W]*/", "", $cadena); $resultado["tipo_entidad"]["validacion_dato_vida"] = "nacimiento"; } else { $resultado["dato_natalidad"] = ""; $resultado["tipo_entidad"]["validacion_dato_vida"] = "sin_dato"; } } } //Extrae los datos de lugar y año de nacimiento y muerte de la persona if ($resultado["dato_natalidad"] != "") { //var_dump($resultado["dato_natalidad"]); preg_match("/([\\d]{4}){1}-?([\\d]{4})?/", $resultado["dato_natalidad"], $dato_natalidad); //var_dump($dato_natalidad); if (count($dato_natalidad) > 0) { if (strlen($dato_natalidad[0]) > 4) { $dato_natalidad = explode("-", $dato_natalidad[0]); $resultado["anio_nacimiento"] = $dato_natalidad[0]; $resultado["anio_muerte"] = $dato_natalidad[1]; } else { $resultado["anio_nacimiento"] = $dato_natalidad[0]; $resultado["anio_muerte"] = -1; } } preg_match("/^(n\\.\\sy\\sm\\.){1}[\\s\\S](\\w)+/", $resultado["dato_natalidad"], $dato_natalidad); if (count($dato_natalidad) > 0) { $dato_natalidad = preg_replace("/^(n\\.\\sy\\sm\\.){1}[\\s\\S]?/", "", $dato_natalidad[0]); $dato_natalidad = preg_replace("/[\\W]/", "", $dato_natalidad); $resultado["lugar_nacimiento"] = $dato_natalidad; $resultado["lugar_muerte"] = $dato_natalidad; } else { //var_dump($resultado["dato_natalidad"]); preg_match("/^(n\\.)[\\s\\S](\\w)+/", $resultado["dato_natalidad"], $dato_natalidad); //var_dump($dato_natalidad); if (count($dato_natalidad) > 0) { $dato_natalidad = preg_replace("/^(n\\.)[\\s\\S\\W]?/", "", $dato_natalidad[0]); $dato_natalidad = preg_replace("/[\\W]/", "", $dato_natalidad); $resultado["lugar_nacimiento"] = $dato_natalidad; } //var_dump($resultado["dato_natalidad"]); preg_match("/(m\\.)[\\s\\S](\\w)+/", $resultado["dato_natalidad"], $dato_natalidad); //var_dump($dato_natalidad); if (count($dato_natalidad) > 0) { $dato_natalidad = preg_replace("/^(m\\.)[\\s\\S\\W]?/", "", $dato_natalidad[0]); $dato_natalidad = preg_replace("/[\\W]/", "", $dato_natalidad); $resultado["lugar_muerte"] = $dato_natalidad; } } } //Extrae los datos de profesion del renglon ------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------------------------------------ //El procedimiento es obtener la cadena hasta el primer renglon, normalizarla y revisarlacontra una lista de terminos de profesiones preg_match("/^(.*?)\\./", $cadena, $dato_profesion); if (count($dato_profesion) > 0) { $res_profesion_persona = get_profesion($dato_profesion[0], $dic_profesion); $resultado["tipo_entidad"]["validacion_dato_profesion"] = $res_profesion_persona["resultado"]; $resultado["categorias"] = $res_profesion_persona["categorias"]; if ($resultado["tipo_entidad"]["validacion_dato_profesion"] == True) { $resultado["dato_profesion"] = preg_replace("/\\/", "", $dato_profesion[0]); $cadena = str_replace($dato_profesion[0], "", $cadena); $cadena = preg_replace("/^[\\W]*/", "", $cadena); } else { $resultado["dato_profesion"] = ""; } } else { $resultado["dato_profesion"] = ""; $resultado["tipo_entidad"]["validacion_dato_profesion"] = "sin_dato"; } $resultado["cadena"] = $cadena; //Verificacion final del tipo de persona ----------------------------------------------------------------------- // ------------------------------------------------------------------------------------------------------------------------------ if ($resultado["tipo_entidad"]["validacion_nombre_persona_inicial"] == true) { if ($resultado["tipo_entidad"]["validacion_dato_vida"] != "sin_dato" or $resultado["tipo_entidad"]["validacion_dato_profesion"] == True) { $resultado["tipo_entidad"] = "persona"; } else { $resultado["tipo_entidad"] = "sin_clasificar"; } } else { $resultado["tipo_entidad"] = "sin_clasificar"; } return $resultado; }