Foros del Web » Programando para Internet » PHP »

url amigables

Estas en el tema de url amigables en el foro de PHP en Foros del Web. hola a todos, ya se que este tema está súper trillado, y todo hacemos algo así como 1- trim, llevar todo a minúsculas, eliminar entidades ...
  #1 (permalink)  
Antiguo 06/09/2011, 08:06
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 9 años, 4 meses
Puntos: 209
url amigables

hola a todos, ya se que este tema está súper trillado, y todo hacemos algo así como
1- trim, llevar todo a minúsculas, eliminar entidades html y algun reemplazo

pero ahora mi pregunta es no existe una forma para no tener que incluir los caracteres que le haré el str_replace, eje ñ
pq si hacemos un sistema para varios paises, supongamos que tengan este carácter Ç, que hacemos, lo incluimos y listo, pero esto hay que mantenerlo constantemente,
a mi me parece que tiene que existir otra forma, quizas llevar la cadena a ascii, algó así..
alguna idea ?
__________________
aconcaguaestudio.com
  #2 (permalink)  
Antiguo 06/09/2011, 08:16
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 7 meses
Puntos: 334
Respuesta: url amigables

te adjunto la class que hice para el asunto de las url amigables.. espero te sea de utilidad..
intenta entender el como esta hecha para que tengas la idea también

saludos.


Código PHP:
<?php
/**
 * Khaus Framework
 *
 * LICENSE
 *
 * This source file is subject to the Public license Creative Commons LPCC
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://creativecommons.org/licenses/by-nc/2.0/cl/
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * @category    Khaus
 * @package     Khaus_Helper
 * @copyright   Copyright (c) 2010 - 2011, Khaus Corp. Chile [[email protected]]
 * @license     Atribucion-Licenciar Igual 2.0 Chile. CC BY-NC 2.0
 * @version     1:20110315
 */

class Khaus_Helper_Seo
{
    static public function 
removeAccents($string)
    {
        
$html get_html_translation_table(HTML_ENTITIES);
        
$html array_slice($html32, -4);
        foreach (
$html as $char => $entitie) {
            
$bar[] = substr($entitie11);
        }
        
$string htmlentities($stringENT_QUOTES'UTF-8');
        
$string str_replace($html$bar$string);
        return 
$string;
    }
    static public function 
safeName($string)
    {
        
$string self::removeAccents($string);
        
$string strtolower($string);
        
$string preg_replace('/(&[a-z0-9]+;|[^a-z0-9_])/''_'$string);
        
$string preg_replace('/[\s_]+/''_'$string);
        
$string trim($string'_');
        return 
$string;
    }
}
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 06/09/2011, 08:25
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 9 años, 4 meses
Puntos: 209
Respuesta: url amigables

@Hidek1, te agradezco mucho
si pongo una cadena "simple" hola mundo = hola_mundo, acá si funciona bien
pero..
si pongo esta hola ññ = me deja todo en blanco
te ha pasado ?
__________________
aconcaguaestudio.com
  #4 (permalink)  
Antiguo 06/09/2011, 08:33
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 7 meses
Puntos: 334
Respuesta: url amigables

pues a mi me arroja

Código PHP:
echo Khaus_Helper_Seo::safeName('hola ññ'); // hola_nn 
recuerda que tus archivos .php deben estar guardados con la codificación correspondiente a UTF-8 .. si no solo agrega un utf8_decode al inicio de safeName()

saludos.

www.php.net/utf8_decode
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 06/09/2011, 08:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 12 años, 1 mes
Puntos: 2534
Respuesta: url amigables

Cita:
Iniciado por iviamontes Ver Mensaje
@Hidek1, te agradezco mucho
si pongo una cadena "simple" hola mundo = hola_mundo, acá si funciona bien
pero..
si pongo esta hola ññ = me deja todo en blanco
te ha pasado ?
Ese tipo de problema se deben a una mala codificación del archivo mismo, debes guardarlo en UTF así como la base de datos, etc.

Todo debería ser homogéneo, ¿es así?

Edito: ya te lo han dicho...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 06/09/2011, 08:40
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 9 años, 4 meses
Puntos: 209
Respuesta: url amigables

en la base de datos está guardado con cotejamiento utf8_spanish_ci
el archivo php, está en utf-8, esto lo se pq (uso eclipse) voy a file->properties y tiene utf-8 en text file encoding

pero aun así le puse a la cadena utf8_decode($_POST('titulo'));
y sigue sin funcionar
__________________
aconcaguaestudio.com
  #7 (permalink)  
Antiguo 06/09/2011, 09:00
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 7 meses
Puntos: 334
Respuesta: url amigables

y que tal el HTML ?...
ya que estas enviando desde un formulario
en el header del HTML deberías tener el meta content-type con el charset=UTF-8 ?


saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 06/09/2011, 09:06
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 9 años, 4 meses
Puntos: 209
Respuesta: url amigables

como era de prueba tenía solamente
<html>
sin ningun meta, pruebo a ponérselo entonces y te digo, gracias por todo
  #9 (permalink)  
Antiguo 06/09/2011, 09:08
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 12 años, 4 meses
Puntos: 845
Respuesta: url amigables

Que tal iviamontes,

Te dejo una referencia http://cubiq.org/the-perfect-php-clean-url-generator

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 06/09/2011, 09:09
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 9 años, 4 meses
Puntos: 209
Respuesta: url amigables

muchas gracias @masterpuppet...
  #11 (permalink)  
Antiguo 06/09/2011, 09:13
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 12 años, 2 meses
Puntos: 253
Respuesta: url amigables

Buenas,

No tiene que ver mucho con el tema inicial, pero si con los últimos mensajes. Es que nunca me ha quedado claro y al final acabo probando todas las convinaciones. Exactamente qué y cómo hay que cambiar para hacer un cambio de codificación? A ver si alguien me puede hacer una compilación tipo:
- HTML: se cambia en el meta del header de la siguiente forma:
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- Bases de datos: se puede cambiar en tiempo de ejecución con:
Código PHP:
Ver original
  1. mysql_query("SET NAMES 'UTF-8'", $con);

Como digo, al final acabo probando hasta que me sale, pero quería salir un poco de dudas y tenerlo bien claro.

Gracias a todos y perdón @iviamontes por pisotearte el post.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #12 (permalink)  
Antiguo 06/09/2011, 09:13
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 9 años, 4 meses
Puntos: 209
Respuesta: url amigables

gracias a todos amigos
cambié las locales antes de llamar al método

setlocale(LC_ALL, 'es_AR.UTF8');

y con eso ya me funciona todo bien
  #13 (permalink)  
Antiguo 06/09/2011, 09:14
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 9 años, 4 meses
Puntos: 209
Respuesta: url amigables

no te preocupes @vgonga1986, estamos para ayudarnos todos

Etiquetas: amigables, html, 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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 14:11.