Jump to content


Photo

Dúvida Com Preg_replace


  • Faça o login para participar
1 reply to this topic

#1 romzinho

romzinho

    Turista

  • Usuários
  • 39 posts
  • Sexo:Não informado

Posted 28/02/2008, 12:44

Pessoal, tudo bem?

Estou querendo fazer com que todos os dados inseridos e que contenham espaço sejam substituido por "-"(traço). Por exemplo:

Isso é um teste => isso-e-um-teste.

Acontece que tem usuários que escrevem:

Isso é um teste - testando (transformando fica) => isso-e-um-teste---testando.

Quero fazer com que o sistema tenha apenas um traço. => isso-e-um-teste-testando.

Tentei fazer :

preg_replace("([-]+)", "-", $input)

Mas não funcionou. Gostaria de saber se alguém saberia como posso fazer isso. Desde já agradeço.

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 28/02/2008, 13:39

Deu uma adaptada nesta função do grande PR e parece que está funcionando como você quer.

<?php

function cleanURI($input)
{
	return ereg_replace(
		'[^a-z0-9-]',
		'',
		ereg_replace(
			'[ -]+',
			'-',
			strtr(
				strtolower(html_entity_decode($input)),
				'àáãâéêíóõôúüçñ',
				'aaaaeeiooouucn'
			)
		)
	);
}

?>

Teste:
<?php

	echo cleanURI("isso é um teste --- testando"); // isso-e-um-teste-testando

?>

PS. na verdade só incluí um hífen alí no segundo ereg_replace(). :rolleyes:

Flws...
(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




1 user(s) are reading this topic

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

IPB Skin By Virteq