Listo (Ctrl + Enter para ejecutar) Bootcamp Fullstack »
ejemplo.php
Tab = 4 espacios
1
<?php
function crearSlugAmigable(string $titulo): string
{
    // 1. Convertir a minúsculas en UTF-8
    $slug = mb_strtolower(trim($titulo), 'UTF-8');

    // 2. Transliterar caracteres acentuados básicos del español
    $acentos = ['á' => 'a', 'é' => 'e', 'í' => 'i', 'ó' => 'o', 'ú' => 'u', 'ñ' => 'n'];
    $slug = strtr($slug, $acentos);

    // 3. Reemplazar cualquier carácter que NO sea letra o número por un guion
    $slug = preg_replace('/[^a-z0-9]+/i', '-', $slug);

    // 4. Eliminar guiones duplicados consecutivos (ej: '---' pasa a '-')
    $slug = preg_replace('/-+/', '-', $slug);

    // 5. Eliminar guiones sobrantes al inicio o al final
    return trim((string)$slug, '-');
}

$titulosPrueba = [
    "¡Aprende Programación Orientada a Objetos en PHP 8.3!",
    "Descuento del 50% en Hosting SSD (Solo por hoy)",
    "¿Cómo usar Docker, Kubernetes & CI/CD en 2026?",
    "   Espacios   extraños  y  símbolos: @#$%&*   "
];

echo "<div style='font-family:system-ui; max-width:640px; padding:15px;'>";
echo "<h3 style='color:#0f172a; margin-top:0;'>🔗 Generador de Slugs con preg_replace()</h3>";

foreach ($titulosPrueba as $titulo) {
    $slugGenerado = crearSlugAmigable($titulo);
    
    echo "<div style='background:#f8fafc; border:1px solid #cbd5e1; border-radius:6px; padding:10px 14px; margin-bottom:10px;'>";
    echo "  <div style='color:#64748b; font-size:12px;'>Título Original:</div>";
    echo "  <div style='color:#1e293b; font-weight:600; font-size:14px;'>" . htmlspecialchars($titulo) . "</div>";
    echo "  <div style='margin-top:6px; color:#0284c7; font-family:monospace; font-size:13px;'>";
    echo "    <strong>URL Slug:</strong> https://kilopolis.com/articulos/<span style='background:#e0f2fe; padding:2px 6px; border-radius:4px; font-weight:bold;'>$slugGenerado</span>";
    echo "  </div>";
    echo "</div>";
}

echo "</div>";
Haz clic para editar este código
Vista Previa
Servidor PHP 8.3