Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Tutorial crear url amigable con php

El objetivo de esta función es tomar el título de la noticia y transformarlo en una frase asequible a los buscadores. Con esta función php conseguimos generar una url amigable a partir de un título:
<?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;
}
?>
El segundo paso es cambiar las urls con Mod Rewrite de Apache:
RewriteEngine on
RewriteRule ^topic/(.+) prueba.php?code=$1
El tercer paso es cambiar los enlaces:
<a href="topic/<?php echo $rowC['seo'] ?>">Titulo</a>
5
Puntos
2140
Visitas
2
Resp
Por alber hace 43 meses
Administrador
Respuesta #1
Hola alber, tengo una duda, como es que se usa esa función, lo que quiero decir es que dónde se usa, es para insertar datos a la BD?
5
Puntos
Por kanikase hace 42 meses
Principiante
Respuesta #2
kanikase dijo:
Hola alber, tengo una duda, como es que se usa esa función, lo que quiero decir es que dónde se usa, es para insertar datos a la BD?
Hola, por ejemplo donde tienes la inserción a la base de datos le dices que te inserte en la columna seo lo mismo que en la de titulo pero formateada con la función

ejemplo:
<?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;
}

//Insertar registro
$insertSQL = sprintf("INSERT INTO posts (titulo, seo) VALUES (%s, %s)",
                       GetSQLValueString($_POST['titulo'], "text"),
					   //En esta linea convertimos el titulo en url amigable
                       GetSQLValueString(urls_amigables($_POST['titulo']), "text"));

  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error());
  
?>
5
Puntos
Por alber hace 42 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate