sustituir espacios vacios en url

Iniciado por Marciano_79, 7 Septiembre 2016, 04:03 AM

0 Miembros y 1 Visitante están viendo este tema.

Marciano_79

Hola amigos.. estoy tratando de modificar mis url algo más "amigables"

cree mi archivo .htaccess y me funciona bien...

de este tipo de url: articulo.php?pag=1-Mi Primer Artículo

el código apache me entrega: articulo/1/Mi Primer Artículo

el resultado lo encuentro bueno, pero quisiera agregar guiones en los espacios vacíos y que todo quede en minúsculas y sin acentos algo así:

articulo/1/mi-primer-articulo

ahora me han dicho que este código me podría servir, pero no se como implementarlo o adaptarlo... a ver si me echan una mano porfavor.

Código (php) [Seleccionar]
function urls_amigables($url) {
// Tranformamos todo a minusculas
$url = strtolower($url);
//Rememplazamos caracteres especiales latinos
$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');
$repl = array('a', 'e', 'i', 'o', 'u', 'n');
$url = str_replace ($find, $repl, $url);
// Añadimos los guiones
$find = array(' ', '&', '\r\n', '\n', '+');
$url = str_replace ($find, '-', $url);
// Eliminamos y Reemplazamos demás caracteres especiales
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
return $url;
}


y bueno, la verdad ni idea de como usarlo, ni donde ubicarlo... no se como trabajar con el.. me pueden echar una mano porfavor

Los enlaces de mi código fuente son así..

Código (php) [Seleccionar]
echo"<p class='p-title'><a href='articulo/$id'>$columna[TITULO]</a></p>";

si se necesita más información, favor solicitarla... gracias!


Jeferi

#1
Yo supongo que es algo así:

Código (php) [Seleccionar]


<?php

function urls_amigables($url) {
// Tranformamos todo a minusculas
$url strtolower($url);
//Rememplazamos caracteres especiales latinos
$find = array('á''é''í''ó''ú''ñ');
$repl = array('a''e''i''o''u''n');
$url str_replace ($find$repl$url);
// Añadimos los guiones
$find = array(' ''&''\r\n''\n''+'); 
$url str_replace ($find'-'$url);
// Eliminamos y Reemplazamos demás caracteres especiales
$find = array('/[^a-z0-9\-<>]/''/[\-]+/''/<[^>]*>/');
$repl = array('''-''');
$url preg_replace ($find$repl$url);
return 
$url;
}

// Más codigo aquí

echo"<p class='p-title'><a href='" urls_amigables("articulo/$id") . "'>$columna[TITULO]</a></p>";






(aparte de tu pregunta te haré una recomendación)

Te recomendaría encarecidamente utilizar los tags que escriben al flujo de salida directamente.
Yo al menos pienso que es más limpio que estar haciendo echos constantemente

Código (php) [Seleccionar]
<?php

function urls_amigables()
{
  
// código
}

// Más código

$nombre "John Smith";

?>


<h1>Hola Mundo</h1>

<p>Un párrafo de prueba <?= $nombre ?></p>


Marciano_79

muchas gracias Jeferi me ha servido, ya esta solucionado, mis url ya están mas limpias... por otra parte, tomare bien en cuenta tu recomendación.!! gracias...