Foros del Web » Programando para Internet » PHP »

Urls amigables desde titulo

Estas en el tema de Urls amigables desde titulo en el foro de PHP en Foros del Web. hola que tal he estado intentadndo esto 3 dias hasta aprendi expresiones regulares (lo cual es muy bueno). pero no lo logro. despues de 1 ...
  #1 (permalink)  
Antiguo 28/02/2010, 12:46
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Urls amigables desde titulo

hola que tal he estado intentadndo esto 3 dias hasta aprendi expresiones regulares (lo cual es muy bueno).
pero no lo logro.
despues de 1 mes de dar mis primeros pasos en php

Me explico.

mi objetivo es este:

cuando escribo una de mis urls que me interesa que sean amigables. ejemplo:

http://misitio.com/articulo.php?url=?d=123456

(esa es una url bastante cercana a las mias "osea son feas")

quiero que aparezca

http://misitio.com/titulo-amigable.php o html

pero llamando al titulo de la página o sea lo que esta entre <title>y</title>

tengo esto que saque de un tutorial (si ya se que me estoy extendiendo )

Código PHP:
Ver original
  1. // La variable del título de la noticia
  2. $urls = "Este es un titulo";
  3.  
  4. // mostramos el titulo editado
  5. echo urls_amigables($urls);
  6.  
  7. // mostramos la url terminada
  8. echo "http://tu.sitio.web/articulo/".$id."/".urls_amigables($url)."/";
  9.  
  10. function urls_amigables($urls) {
  11.  
  12. // Tranformamos todo a minusculas
  13. $urls = strtolower($urls);
  14.  
  15. //Remplazamos caracteres especiales latinos
  16. $find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');
  17. $repl = array('a', 'e', 'i', 'o', 'u', 'n');
  18. $urls = str_replace ($find, $repl, $urls);
  19.  
  20. // Añaadimos los guiones
  21. $find = array(' ', '&', '\r\n', '\n', '+');
  22. $urls = str_replace ($find, '-', $urls);
  23.  
  24. // Eliminamos y Reemplazamos demás caracteres especiales
  25. $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
  26. $repl = array('', '-', '');
  27. $urls = preg_replace ($find, $repl, $urls);
  28. return $urls;
  29. }

y después de ese código dice escribir en el htaccess

Código PHP:
Rewriterule ^articulo/(.+)/(.+) articulo.php?id=$1&title=$
esto da como resultado segun lo que dicen que cuando se escriba una url del tipo

http://misitio.com/articulo/loquesea/loquesea

se reescribe colocando la variable $1&title=$2 lo cual no entiendo muy bien ya que no se de donde salen esas variables.

ya tengo el rewrite on del htacces.

aplique eso y no me funcionó por eso

ahora me entran dudas

la variable urls ¿es el titulo de mi web? si es asi deberia llamarla de algun modo, no? como con preg match o algo.

luego cuando le paso la funcion urls amigables y me regresa todo procesado no hace falta algo para que se escriba en el navegador el resultado?

si alguien pudiera despejar mis dudas y hecharme una manita se lo agradecería inifinitamente.
  #2 (permalink)  
Antiguo 28/02/2010, 20:28
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 16 años, 5 meses
Puntos: 30
Respuesta: Urls amigables desde titulo

te falta recuperar los $_get te tendria que quedar
Código PHP:
Ver original
  1. $id=$_get['id']; $title=$_get['title'];
y esos los metes en tu funcion como parametros. tambien tienes que verificar tu linea '18' de la primera por que url no es un valor que varie en tu script ya que siempre sera "Este es un titulo" deberas cambiarlo por $title


dices que no sabes de donde salen las variables:
las variables salen de los (.+) el primero seria $1 y el segundo seria $2


cuando en la barra de direccion pongas:apache interpretara:
Cita:
Rewriterule ^articulo/(.+)/(.+) articulo.php?id=$1&title=$2
y tu script quedaria:
Cita:
articulo.php?id=loquesea&title=loquesea2
__________________
...
  #3 (permalink)  
Antiguo 28/02/2010, 21:15
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Urls amigables desde titulo

Ah ok, he estado trabajando y precisamente pensaba en eso del title, como llamarlo, pero, entonces a partir de ahi deberé cambiar otras variables, por title ya veremos que sale. seguiré tus consejos gracias. ya te cuento.

Última edición por memoadian; 02/03/2010 a las 09:44
  #4 (permalink)  
Antiguo 28/02/2010, 23:10
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Urls amigables desde titulo

Bueno pued de hecho lo logré pero...

al momento de llamar un archivo, me dice que ese archivo no existe

"objeto no encontrado"

¿que pudo haber sido?

Etiquetas: amigables, titulo, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:35.