<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Textos
*
* @author Toshiba
*/
class Textos {
static
function porcentaje($valor) {
return number_format($valor, 2, ',', '.') . "%";
}
static
function dinero($valor) {
return "$" . number_format($valor, 1, ',', '.');
}
static
function paraCorreos($texto) {
return utf8_decode($texto);
}
/**
* @param String $texto Description
* @name $limpiarTexto
*/
static
function limpiar($string) {
$string = trim($string);
$string = str_replace(
array('"', '\''), array('', ''), $string
);
$string = str_replace(
array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'), array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'), $string
);
$string = str_replace(
array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'), array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'), $string
);
$string = str_replace(
array('í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'), array('i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'), $string
);
$string = str_replace(
array('ó', 'ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'), array('o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'), $string
);
$string = str_replace(
array('ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'), array('u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'), $string
);
$string = str_replace(
array('ñ', 'Ñ', 'ç', 'Ç'), array('n', 'N', 'c', 'C',), $string
);
//Esta parte se encarga de eliminar cualquier caracter extraño
$string = str_replace(
array("\\", "¨", "º", "~",
"#", "@", "|", "!", "\"",
"·", "$", "%", "&", "/",
"(", ")", "?", "'", "¡",
"¿", "[", "^", "`", "]",
"+", "}", "{", "¨", "´",
">", "< ", ";", ",", ":",
"."), '', $string
);
$string = str_replace(array("- ", "-", " "), "_", $string);
$string = preg_replace('/\&(.)[^;]*;/', '\\1', $string);
$string = strtolower($string);
return $string;
}
static
function quitar_comillas($string) {
$string = trim($string);
$string = str_replace(
array('"', '\''), array('', ''), $string
);
return $string;
}
/**
*
* @param Strin $nombre
* @abstract Regresa el nombre partido en NOMBRE_1, NOMBRE_2, APELLIDO_1, APELLIDO_2 dentro de un arreglo de 4 posiciones.
* @return array
*/
static public
function separar_nombre($nombre) {
$nombreSeparado = array();
$nombre = self::evaluar_nombres_apellidos($nombre);
$partes = explode(" ", $nombre);
switch(count($partes)) {
case 1:
array_push($nombreSeparado, NULL);
array_push($nombreSeparado, NULL);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, NULL);
break;
case 2:
array_push($nombreSeparado, $partes[1]);
array_push($nombreSeparado, NULL);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, NULL);
break;
case 3:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado, NULL);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
case 4:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado, $partes[3]);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
case 5:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado, $partes[3] . " " . $partes[4]);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
case 6:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado, $partes[3] . " " . $partes[4] . " " . $partes[5]);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
case 7:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado, $partes[3] . " " . $partes[4] . " " . $partes[5] . " " . $partes[6]);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
case 8:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado,
$partes[3] . " " . $partes[4] . " " . $partes[5] . " " . $partes[6] . " " . $partes[7]);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
case 9:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado,
$partes[3] . " " . $partes[4] . " " . $partes[5] . " " . $partes[6] . " " . $partes[7] . " " . $partes[8]);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
case 10:
default:
array_push($nombreSeparado, $partes[2]);
array_push($nombreSeparado,
$partes[3] . " " . $partes[4] . " " . $partes[5] . " " . $partes[6] . " " . $partes[7] . " " . $partes[8] . " " . $partes[9]);
array_push($nombreSeparado, $partes[0]);
array_push($nombreSeparado, $partes[1]);
break;
}
return $nombreSeparado;
}
/**
*
* @param String $texto
* @return String
* @abstract evalua la cadena enviada y agrupa los apellidos que tenga de, del, de la,
* @name $evaluar_nombre
*
*/
static public
function evaluar_nombres_apellidos($nombreCompleto) {
$str = $nombreCompleto;
if(self::apellidos_variables($nombreCompleto)) {
$str = self::transformar_apellidos_variables($nombreCompleto);
}
return $str;
}
static public
function apellidos_variables($nombresYapellidos) {
$cumpleExpresion = false;
foreach(self::$patronApellidos as $patron) {
if(preg_match($patron['gramatica'], $nombresYapellidos)) {
$cumpleExpresion = true;
}
}
return $cumpleExpresion;
}
static public
function transformar_apellidos_variables($nombresYapellidos) {
$str = $nombresYapellidos;
foreach(self::$patronApellidos as $patron) {
if(preg_match($patron['gramatica'], $str)) {
$str = preg_replace(
$patron['gramatica'], $patron['remplazo'], $str
);
}
}
return $str;
}
public static
function traducir($texto) {
return $texto;
}
public static
function ceros_izquierda($texto, $largo = 2) {
return str_pad($texto, $largo, "0", STR_PAD_LEFT);
}
public static
function ceros_derecha($texto, $largo = 2) {
return str_pad($texto, $largo, "0", STR_PAD_RIGHT);
}
public static
function ceros_ambos_lados($texto, $largo = 2) {
return str_pad($texto, $largo, "0", STR_PAD_BOTH);
}
static public
function quitarEspaciosExtremos($param) {
return rtrim(ltrim($param));
}
static public
function quitarEspaciosEnBlanco($texto) {
return str_replace(" ", "", $texto);
}
static public
function quitar_ceros_izquierda($texto) {
return (string) (floatval($texto));
}
static public
function quitar_ceros_derecha($texto) {
return (string) (rtrim($texto, '0'));
}
static
$patronApellidos = array(
array(
'gramatica' => '/\sde\sla\s/',
'remplazo' => ' dela'
),
array(
'gramatica' => '/de\sla\s/',
'remplazo' => 'dela',
),
array(
'gramatica' => '/\sde\s/',
'remplazo' => ' de'
),
array(
'gramatica' => '/\sdel\s/',
'remplazo' => ' del'
),
array(
'gramatica' => '/\sDE\sLOS\s/',
'remplazo' => ' DELOS'
),
array(
'gramatica' => '/\sDELOS\s/',
'remplazo' => ' DELOS'
),
array(
'gramatica' => '/\sDE\sLAS\s/',
'remplazo' => ' DELAS'
),
array(
'gramatica' => '/\sDELAS\s/',
'remplazo' => ' DELAS'
),
array(
'gramatica' => '/\sDE\sLA\s/',
'remplazo' => ' DELA'
),
array(
'gramatica' => '/DE\sLA\s/',
'remplazo' => 'DELA'
),
array(
'gramatica' => '/\sDEL\s/',
'remplazo' => ' DEL'
),
array(
'gramatica' => '/\sDE\s/',
'remplazo' => ' DE'
),
array(
'gramatica' => '/DE\s/',
'remplazo' => 'DE'
)
);
static
$apellidosExtranos = array(
array(
"apellido" => 'FERNANDEZ DE CASTRO',
"remplazo" => 'FERNANDEZDECASTRO'
),
array(
"apellido" => 'FERNANDEZ DECASTRO',
"remplazo" => 'FERNANDEZDECASTRO'
),
array(
"apellido" => 'DIAZ GRANADOS',
"remplazo" => 'DIAZGRANADOS '
),
array(
"apellido" => 'GUTIERREZ DEPINERES',
"remplazo" => 'GUTIERREZDEPIÑERES'
),
array(
"apellido" => 'GUTIERREZ DE PINERES',
"remplazo" => 'GUTIERREZDEPIÑERES'
),
array(
"apellido" => 'GUTIERREZ DEPIÑERES',
"remplazo" => 'GUTIERREZDEPIÑERES'
),
array(
"apellido" => 'GUTIERREZ DE PIÑERES',
"remplazo" => 'GUTIERREZDEPIÑERES'
)
);
}