Strings

Helper con funciones auxiliares para tratamiento de cadenas de texto.

amigable_time()

Devuelve con el formato 'Hace X segundos/horas/días/semanas/meses/años' el tiempo transcurrido en segundos desde un momento a otro, recibe dos parámetros y uno de ellos es opcional.

El primer parámetro es el tiempo en segundos desde donde queremos contar cuánto ha pasado.

El segundo parámetro es opcional, si se omite, el tiempo pasado por el primer parámetro se contará hasta el tiempo actual, si se pasa el segundo parámetro éste debe ser un tiempo en segundos y será hasta donde contaremos.

Ejemplos:

# Imprime en pantalla 'Hace 1 hora'
echo Strings::amigable_time(time() - (60*60));

# Imprime en pantalla 'Hace 2 horas'
echo Strings::amigable_time(time() - (60*60), time() + (60*60));

hash()

Genera un encriptado de hash fuerte y variable, es utilizado en el Login/Registro/Lostpass para manejar la seguridad de las contraseñas de los usuarios. Maneja un único parámetro, y es el string a encriptar.

# Imprime algo similar a $2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G
echo Strings::hash('123456');

A diferencia de los algoritmos de encriptación tradicionales de PHP estándar, este algoritmo jamás es estático, un mismo string puede generar infinitos hash, por lo que para saber si un string está contenido en un hash hay que utilizar otra función documentada en el punto de abajo.

chash

Compara un hash dinámico con un string, si la llave en ellos coincide entonces son el mismo el string contenido en el hash es exactamente el mismo string con el que es comparado.

Devuelve true si es al compararlos son iguales, false si no lo son.

# Comparamos un hash generado con Strings con un string sin hash
$resultado = Strings::chash('$2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G','123456');
# Entonces
$resultado === true

# Comparamos un hash generado con Strings con un string sin hash
$resultado = Strings::chash('$2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G','1234567');
# Entonces
$resultado === false

date_difference()

Calcula la diferencia de tiempo entre dos fechas con el formato dd-mm-YYYY ó dd/mm/YYYY y devuelve la diferencia de tiempo en días.

$dias = Strings::date_difference('01-06-2016','02-06-2016');
# Entonces
$dias === 1

calculate_age()

Calcula la edad de una persona según la fecha de nacimiento (la cantidad de años transcurridas hasta el tiempo actual).

$edad = Strings::calculate_age('28-10-1996');
# Entonces
$edad === 19

days_of_month()

Devuelve los días que tiene el mes actual, tiene en cuenta los años bisiestos con el mes de febrero.

# Suponemos que estamos en Junio
$dias = Strings::days_of_month();
# Entonces
$dias === 30

is_email()

Devuelve true si un string cumple con el formato de un email válido y false si no lo hace. Maneja un único parámetro, que es la cadena de texto con el email.

$resultado = Strings::is_email('prinick@ocrend.com');
# Entonces
$resultado === true

$resultado = Strings::is_email('prinick');
# Entonces
$resultado === false

remove_spaces()

Remueve todos los caracteres en blanco de un string, solo maneja un parámetro y es el string a transformar.

$string = Strings::remove_spaces('Hola mundo');
# Entonces
$string === 'Holamundo'

alphanumeric()

Analiza si una cadena de texto es alfanumérica, solo maneja un parámetro y es el string a analizar.

$resultado = Strings::alphanumeric('Hol* que suc/de');
# Entonces
$resultado === false

only_letters()

Analiza que una cadena de texto solamente tenga letras, sólo maneja un parámetro y es el string a analizar.

$resultado = Strings::only_letters('Hola mundo 123');
# Entonces
$resultado === false

letters_and_numbers()

Analiza que una cadena de texto tenga letras o números x2.

$resultado = Strings::letters_and_numbers('Hol* que suc/de');
# Entonces
$resultado === false

url_amigable()

Transforma un string a un formato compatible con URL's amigables, sólo maneja un parámetro y es el string a transformar.

$resultado = Strings::url_amigable()('Hola cómo estás y qué sucede');
# Entonces
$resultado === 'hola-como-estas-y-que-sucede'

De forma nativa, está disponible su uso en las vistas. Para llamarlo desde una vista solo debemos hacer:

<html>
...
<?= $this->url_amigable('El texto transformar aquí') ?>
</html>

bbcode()

Transforma el formato BBCode en su equivalente HTML, maneja un único parámetro y es el texto a transformar.

$html = Strings::bbcode('[b]hola[/b]');
# Entonces
$html === '<b>hola</b>'

begin_with()

Dice si un string comienza con un caracter especificado.

$result = Strings::begin_with('A','Algo');
# Entonces
$result === true

end_with()

Dice si un string termina con un caracter especificado.

$result = Strings::end_with('o','Algo');
# Entonces
$result === true

contain()

Ver si un string está contenido en otro.

$result = Strings::contain('mundo','Hola mundo');
# Entonces
$result === true

count_words()

Devuelve la cantidad de palabras en un string.

$result = Strings::count_words('Hola mundo');
# Entonces
$result === 2