Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexandremanowar

retirar espaço na variavel

Recommended Posts

E a e pessoal

 

Eu tenho um formulário de cadastro em html e capturo as informações com códigos php tipo assim:

$nome = $_POST["nome"];
Até aí beleza. O problema é o seguinte as vezes as pessoas cadastram o nome com mais de um espaço entre o nome e o sobrenome. dessa forma: Fulano ..da .Silva ..Rocha(os pontos são os espaços em branco a mais) ou seja muito espaço entre o nome e o sobre nome. TEm como eu criar algo em php que analise essa string na variável e reduza os espaços deixando apenas um para separar. O Resultado final seria esse: Fulano da Silva Rocha.

 

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a e pessoal

 

Eu tenho um formulário de cadastro em html e capturo as informações com códigos php tipo assim:

$nome = $_POST["nome"];
Até aí beleza. O problema é o seguinte as vezes as pessoas cadastram o nome com mais de um espaço entre o nome e o sobrenome. dessa forma: Fulano ..da .Silva ..Rocha(os pontos são os espaços em branco a mais) ou seja muito espaço entre o nome e o sobre nome. TEm como eu criar algo em php que analise essa string na variável e reduza os espaços deixando apenas um para separar. O Resultado final seria esse: Fulano da Silva Rocha.

 

 

Valeu

Da uma olhada ai

 

http://www.php.net/manual/pt_BR/function.trim.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

dependendo do caso você precisa usar expressoes regulares as vezes ate com o trim junto depende

 

mas da uma olhada nesse exemplo e depois que executar olhe o codigo fonte e veja as diferenças entre as duas funções

 

<?
$nome = " Fabyo		  guimaraes de	  oliveira ";

echo trim($nome)."<br />\n";
echo preg_replace("#(\s)+#", " ", $nome);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero agradecer a todos que estão me ajudando nessa dúvida.

 

Eu estou lendo o link que o guma deixou e olhando o exemplo do fabyo mas não estpou conseguindo entender.

 

Fabyo será que você poderia me explicar cada uma dessas linhas que você colocou cara? Preciso entender

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a Fabyo e guma beleza!

 

Cara usei os dois modos e nenhum deles funcionaram, colquei dessa forma:

$nome = $_GET["nome"];trim($nome)."<br />\n";$armazena = "insert into tabela(nome)values('$nome')";$sql = mysql_query($armazena);

E o outro assim:

$nome = $_GET["nome"];preg_replace("#(\s)+#", " ", $nome);$armazena = "insert into tabela(nome)values('$nome')";$sql = mysql_query($armazena);

Fiz desses dois modos e na mandei armazenar no meu banco de dados depois fiz a consulta no banco e o nome continuou com os espças a mais do mesmo modo!

 

Onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal valeu pela força dei uma estudada aqui e resolvi o problema ficou assim:

$nome = trim($nome);//eliminar caracteres em branco$arrayNome = explode(" ",$nome);//jogar dentro de array//caso queira saber total de elementos do array$total = count($arrayNome);$nome2 = "$arrayNome[0] ";for($i=1; $i<$total; $i++){ if(!empty($arrayNome[$i])) {  $nome3 = $arrayNome[$i];  $nome2 .= "$nome3 "; }}$armazena = "insert into tabela(nome)values('$nome2')";$sql = mysql_query($armazena);

Se alguém tiver um modo melhor ou algumas observações para fazer por favor esteja a vontade

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

você nao entendeu usando preg_replace?

 

nao precisa fazer tudo isso: $nome2, $nome3 , $arrayNome[$i] etc... desculpe mas isso é gambi = )

 

posta ai sua duvida que a gente te ajuda tente ver os exemplos e fale o que você nao entendeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae Fabyo beleza!

 

Cara realmente não entendi o preg_replace, usei ele, conforme postei acima, não deu mensagem de erro, mas também não funcionou. Ou seja, quando eu armazenei a variável e consultei o banco ela continuou cheia de espaços em branco entre o nome e os sobrenomes! Tentei entender lendo o manual do php, mas não entendi.

 

Você me deu esse exemplo:

echo preg_replace("#(\s)+#", " ", $nome);
Me explica ele e esses por inteiro e como eu armazenaria o valor da variável sem os espaços porque tentei e não consegui

 

at+

Compartilhar este post


Link para o post
Compartilhar em outros sites

E para remover espaços de um tipo de variável que recebe um arquivo? Em vez de POST receber FILE..

Eu não consegui remover os espaços.. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de renomear arquivos enviados via um formulário por um cliente que tenha espaço no nome ou acento, já que, quando for exibido, listado esses arquivos, o usuário não irá consegui baixar ou visulizar (se caso for uma imagem).

 

Essa função: preg_replace funcionou para quando é uma string, mas no caso de um arquivo não deu certo.. olha so..

 

$arquivo1=preg_replace("#(\s)+#", "", $_FILES['arquivo1']);

 

Obrigada pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo William, quero retirar o espaço do arquivo que será enviado para uma pasta no servidor.. o nome do arquivo que vai para o banco de dados eu consegui retirar.. ta indo certinho.. porém o arquivo não deu certo... :(

 

Vou ver a solução do hinon, ainda não testei.. ai posto aqui.

 

obrigada :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você está guardando informações do arquivo num banco de dados

então não precisa salvar o arquivo com o nome original

gere um nome unico

 

 

por exemplo

 

$extensao_do_arquivo = 'jpg';

echo uniq( date('YmdHis') ) . $extensao_do_arquivo;

 

 

isso evita o trabalho de ficar fazendo tratamento da string e também impedirá que sobrescreva algum outro arquivo que poderia ter o mesmo nome.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver o problema após muitas pesquisas usando a função abaixo, que também serve para retirar acentos.

 

/**
* Remove espacos de uma string
* @param string $texto Texto a ser filtrado
* @return string Texto sem espacos
*/

function remover_espacos($texto) {
return preg_replace('/\s/', '', $texto);
}


/**
* Remove acentos de uma string
* @param string $texto Texto a ser filtrado
* @return string Texto sem acentos
*/

function remover_acentos($texto, $charset = 'UTF-8') {
return iconv($charset, 'ASCII//TRANSLIT', $texto);
}

 

Para mim funcionou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.