Modificar script para obtener URL Amigable :)

SuperUser Seguir

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
27 Jul 2012
Mensajes
377
Gentuza, como andan? :ghost:

Intentaré pedir algo de ayuda a los que saben de PHP. Resulta que intento corregir las URL amigables en un script que estoy usando.
Conozco cuales son los dos archivos que hay que modificar.

En uno de ellos, tengo este código:

PHP:
*/
	function setSEO($string, $max = false) {
		// ESPAÑOL
		$espanol = array('á','é','í','ó','ú','ñ');
		$ingles = array('a','e','i','o','u','n');
		// MINUS
		$string = str_replace($espanol,$ingles,$string);
		$string = trim($string);
		$string = trim(preg_replace('/[^ A-Za-z0-9_]/', '-', $string));
		$string = preg_replace('/[ \t\n\r]+/', '-', $string);
		$string = str_replace(' ', '-', $string);
		$string = preg_replace('/[ -]+/', '-', $string);
		//
		if($max) {
			$string = str_replace('-','',$string);
			$string = strtolower($string);
		}
		//
		return $string;
	}
	/*
Y en el otro archivo este otro:

PHP:
*/
function smarty_modifier_seo($string){
	// ESPA�OL
	$espanol = array('�','�','�','�','�','�');
	$ingles = array('a','e','i','o','u','n');
	// MINUS
	$string = str_replace($espanol,$ingles,$string);
	$string = trim($string);
	$string = trim(preg_replace("/[^ A-Za-z0-9_]/", "-", $string));
	$string = preg_replace("/[ \t\n\r]+/", "-", $string);
	$string = str_replace(" ", "-", $string);
	$string = preg_replace("/[ -]+/", "-", $string);
	//
	return $string;
}

Así como están los códigos, cada vez que creo una publicación con alguna palabra con tilde (canción, información), la URL se muestra de la siguiente forma:

miweb.com/canci-n



O sea, reemplaza la letra con tilde, o caracter extraño, por un guion. Pero el título de la publicación lo muestra bien. (A excepción de los caracteres extraños)

¿Soluciones? ;)

:encouragement:
 

Javieer

Gamma
Programador
Desde
2 Ago 2013
Mensajes
161
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Intenta agregar al inicio de tu funcion
PHP:
utf8_decode
 

Javieer

Gamma
Programador
Desde
2 Ago 2013
Mensajes
161
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Sino colocas la solución, en un futuro alguien que tenga la misma cuestion tendra que reabrir el post ;)
 

SuperUser

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
27 Jul 2012
Mensajes
377
Fue muy sencillo, solo tuve que pensar un poco. Reemplazé los � por las letras correspondientes con sus tildes.
 

Javieer

Gamma
Programador
Desde
2 Ago 2013
Mensajes
161
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Cambio esto
PHP:
 $espanol = array('�','�','�','�','�','�');

por esto:

PHP:
$espanol = array('á','é','í','ó','ú','ñ');

o eso creo xd
 

SuperUser

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
27 Jul 2012
Mensajes
377
Tal cual javieer, asi fue como hice.
 
Arriba