Modificar script para obter URL amigável :)

  • Autor Autor SuperUser
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
SuperUser

SuperUser

Gamma
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
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:
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Intenta agregar al inicio de tu funcion
PHP:
utf8_decode
 
Ya lo solucioné amigos.
 
Sino colocas la solución, en un futuro alguien que tenga la misma cuestion tendra que reabrir el post 😉
 
Fue muy sencillo, solo tuve que pensar un poco. Reemplazé los � por las letras correspondientes con sus tildes.
 
Ehh? :fatigue:
 
Cambio esto
PHP:
 $espanol = array('�','�','�','�','�','�');

por esto:

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

o eso creo xd
 
Tal cual javieer, asi fue como hice.
 
Voltar
Topo