Jump to content


Photo

Estou Com Problemas Na Parte De Expressoes Regulares Na Url


  • Faça o login para participar
2 replies to this topic

#1 nicholaskr

nicholaskr

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul

Posted 03/11/2011, 20:39

Olá pessoal,eu estou criando um site aqui e resolvi usar url amigavel nas noticias.
Os links das noticias assim index.php?pg=artigo&id=10
Resolvi por deste outro modo site.com.br/artigos/10/titulo-da-noticia
Coloquei tudo certinho,só que quando clico em uma noticia,o link fica assim, site.com.br/artigos/10/Titulo da Noticia , e deste modo ele não funciona,vai só funcionar se eu deixar minusculo e separar por hifen.
No codigo do link da noticia eu pus assim, <a href="./artigos/<?=$row[not_id]?>/<?=$row[not_titulo]?>"><?=$row[not_id]?></a>
O que quero saber é como que eu faço para que o titulo fique minusculo e ao invez de espaço apareça hifen.
Por favor ne ajudem!

#2 Diego Bezerra

Diego Bezerra

    Diego Bezerra

  • Moderadores
  • 938 posts
  • Sexo:Masculino
  • Localidade:Amazonas
  • Interesses:Iniciando no C# com MSSQL.

Posted 05/11/2011, 09:55

Ola eu a algum tempo creie esta função para fazer exatamente isto

//função que remove subistitui os espaços e caracteres estranhos para -
# @nome GRE URL
# @autor Diego Bezerra
# @usar GREURL($variavel);
function GREURL($string) {
    $estranhos = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D','+');
    $remove_estranhos = array('-', '-', "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-");
    return str_replace($estranhos, $remove_estranhos, urlencode($string));
};

//função que remove acentos
# @nome GRE URL Remove Acentos
# @autor Diego Bezerra
# @usar GREURLAc($variavel);
function GREURLAc($sub){
    $acentos = array(
	'À','Á','Ã','Â', 'à','á','ã','â',
	'Ê', 'É',
	'Í', 'í', 
	'Ó','Õ','Ô', 'ó', 'õ', 'ô',
	'Ú','Ü',
	'Ç', 'ç',
	'é','ê', 
	'ú','ü',
	);
    $remove_acentos = array(
	'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
	'e', 'e',
	'i', 'i',
	'o', 'o','o', 'o', 'o','o',
	'u', 'u',
	'c', 'c',
	'e', 'e',
	'u', 'u',
	);
    return str_replace($acentos, $remove_acentos, urldecode($sub));
}

espero que ajude
Att.
Diego Bezerra
Agência Kernel - em Breve
Email/msn: diegobezerra@outlook.com
Facebook

#3 Riba .·. DM

Riba .·. DM

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 05/01/2012, 12:06

Se entendi bem, seria o caso de utilizar strtolower($var) para ficar tudo em minusculo e str_replace(' ', '-', $var)

Ex.:

$var = 'Titulo da Pagina';

$var = strtolower($var); // Objetivo: Converte todas as letras maiusculas em minusculas | Resultado: titulo da pagina

$var = str_replace(' ', '-', $var); // Objetivo: Troca todos os espacos em branco por -(hifem) | Resultado: titulo-da-pagina


Espero ter ajudado.

Posted Image

Talk is cheap. Show me the code




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq