Codigos

Limpiar cadenas con PHP para que sean seguras

Limpiar cadenas con PHP. Un carácter que no es un alfabeto o carácter numérico se denomina carácter especial. Debemos eliminar todos los caracteres especiales de la cadena para que podamos leer la cadena de forma clara y fluida. Los caracteres especiales no son legibles, por lo que sería bueno eliminarlos antes de leerlos.

En este articulo veremos dos formas de limpiar Títulos para URL de una manera muy simple. Usaremos dos funciones según el caso y les comentare que esto me soluciono el problema que tenia:

Primera Opción: Limpiar cadenas con PHP

La solución para este caso es modificar la expresión regular y este método acepta dos parámetros:

strtolower: es la expresión regular con la que se debe hacer coincidir la cadena. Puede ser de diferentes tipos.
preg_replace: la cadena que se sustituirán por la coincidencia.

<?php
function slugify($string){
return strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $string), '-'));
}
?>

Salida en el navegador

<?php echo slugify('El método POST de Muñoz'); 

//Salida en el navegador

// => el-metodo-post-de-munoz 

?>

Del mismo modo, si la cadena contiene muchos caracteres especiales, puede eliminarlos todos simplemente seleccionando caracteres alfanuméricos, por ejemplo, usando la función ”slugify“, que reemplazará cualquier cosa con String vacía excepto “A Z, a z, 0 a 9“. Veamos un par de ejemplos para eliminar todos los caracteres especiales de cadena en PHP.

Segunda Opción: limpia_url

En mi caso personal suelo desarrollar sistemas web para empresas y suelo llegar a un punto donde el cliente solicita URL amigables para optimizar el SEO en Google.

Todas las páginas que se generan tienen que poseer Url Amigables y veremos cómo realizar esta acción.
Primero. Crear URL si caracteres especiales y para realizar esto me apoyo en esta función llamada “limpia_url” para limpiar los títulos y luego almacenarlo en la base de datos.

Aquí, mostrare la función que uso para mis proyectos.

<?php
function limpia_url( $string, $separator = '-' )
{
$accents_regex = '~&([a-z]{1,2})(?:acute|cedil|circ|Grave|lig|orn|ring|slash|th|tilde|uml);~i';
$special_cases = array( '&' => 'and', "'" => '');
$string = mb_strtolower( trim( $string ), 'UTF-8' );
$string = str_replace( array_keys($special_cases), array_values( $special_cases), $string );
$string = preg_replace( $accents_regex, '$1', htmlentities( $string, ENT_QUOTES, 'UTF-8' ) );
$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
$string = preg_replace("/[$separator]+/u", "$separator", $string);
return $string;
}
?>

Uso de la función

<?php

echo limpia_url('El método POST de Muñoz'); 

//Salida en el navegador 

// => el-metodo-post-de-munoz 

?>

CONCLUSIÓN

Hemos usado dos funciones para eliminar caracteres especiales en los títulos o URL, la primera función es un poco más rápida y la segunda es una función más grande pero más concisa a la hora de realizar limpiezas en las cadenas.
Estas funciones pueden limpiar cadenas de cualquier tipo y de diferentes usos, por ejemplo:

  • URL amigables
  • Nombre de archivos, imágenes, etc.

Espero que este post les ayude en sus proyectos

Limpiar cadenas con PHP para que sean seguras
Limpiar cadenas con PHP para que sean seguras

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba