Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}