Publi

Slugs amigables en PHP para usar en URLs

Cuando estamos desarrollando webs, normalmente tenemos que enlazar a contenidos creados por el usuario, y hoy en día está muy bien que la URL sea amigable tanto para el usuario, como para los buscadores y el navegador. Es decir, antes se veía mucho acceder a una página tipo: http://dominio.com/noticias.php?id=192391283 y ahora, eso mismo o vemos como http://dominio.com/noticias/2013/10/acabo-de-subir-un-slug-amigable . La URL es más larga, pero se indexa mejor, y al usuario le da una sensación algo más profesional.
Eso sí, aunque ya se permiten dominios con caracteres raros, y el tema de la codificación es casi del pasado, es recomendable no incluir caracteres raros como tildes, eñes, y letras extrañas que hay en algunos idiomas, porque al pasar el enlace de una persona a otra puede cambiar la codificación con la que la URL está escrita y cuando vamos a acceder, si ésta no coincide con la que tenemos en el servidor, la dirección no funcionaría. Pero como todas las codificaciones comunes coinciden en los primeros 127 valores, o lo que es lo mismo el código ASCII, utilizaremos caracteres contenidos ahí, pero además, evitaremos otros caracteres que nos pueden dar problemas, como ?, &, «, (espacio) y algunos más…

Al final nos quedamos con letras y números, y el guión, por lo que una «á» pasará a ser una «a», una «ñ», pasará a ser una «n», etc.

Podemos utilizar este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function createSlug($str, $max=30)
{
        $out = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
        $out = substr(preg_replace("/[^-\/+|\w ]/", '', $out), 0, $max);
        $out = strtolower(trim($out, '-'));
        $out = preg_replace("/[\/_| -]+/", '-', $out);

        return $out;
}

function checkSlug($str)
{
        return preg_match ("/^[a-z0-9\-]*$/", $str);
}

$mySlug =  createSlug("Descripción de mi post en español normal, pero que se codificará de forma diferente para ser un texto amigable");
echo $mySlug."\n";
if (checkSlug($mySlug))
        echo "Buena";
?>

La función createSlug() probablemente la hayáis visto navegando por Internet, es muy corta y algo común, ésta admite dos argumentos, uno será la cadena a partir de la cual queremos crear el slug, y el otro será el tamaño máximo del slug que vamos a crear.

Adicionalmente, creé una función que verifica que la cadena que le pasamos es un struct, es decir, sólo contiene caracteres de la «a» a la «z», en minúscula, números y guión, desde el prncipio hasta el final… muy útil para verificar el dato entrante en la URL antes de empezar a buscarlo en nuestra base de datos.

También podría interesarte....

There are 4 comments left Ir a comentario

  1. Victor Patrick /
    Usando Google Chrome Google Chrome 114.0.0.0 en Windows Windows NT

    You truly are exceptional since you have a remarkable ability for motivating others with only a few words. Rainbow Friends: Chapter 2

  2. contexto /
    Usando Google Chrome Google Chrome 115.0.0.0 en Windows Windows NT

    contexto is the ideal word game for word puzzle fans! The game gives you clues that make you think outside the box; highly recommended!

  3. Simran /
    Usando Google Chrome Google Chrome 115.0.0.0 en Windows Windows NT

    Regular updates ensure that Nord vpn mod apk stays ahead of the latest security threats and offers the most advanced features to its users. Their commitment to continuous improvement guarantees a top-notch experience.

  4. natalya /
    Usando Google Chrome Google Chrome 116.0.0.0 en Windows Windows NT

    * Writing about friendly URLs in PHP
    * Friendly URLs, also known as clean URLs or pretty URLs, are URLs that are easy to read and remember. In PHP, we can create friendly URLs by using the mod_rewrite module in Apache or by using the built-in functions in PHP.
    * This URL is much more user-friendly and easier to remember. To achieve this, we can use PHP to parse the URL and extract the necessary information, such as the page and language. We can then use this information to generate the appropriate content for the user.
    * Overall, creating friendly URLs in PHP is an important aspect of web development that can greatly enhance the user experience and make our websites more accessible and user-friendly. i know it while my daughter play girls games
    and i researched about this on the google

Leave a Reply to Victor Patrick Cancle Reply