Ir para conteúdo

POWERED BY:

Arquivado

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

Thompson

Defeito na função trim()

Recommended Posts

Falae, galera :) eh o seguinte...$variavel = " bla bla ";se eu der um trim($variavel) vai me retornar "bla bla", correto? perfeito. porém, suponhamos q " bla bla " foi pego através de $_POST['variavel'];$variavel = $_POST['variavel'];se eu der um trim($variavel) vai me retornar "", ou seja, ele come toda a string!!!alguem sabe me explicar o porquê disso????? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form action="testetrim.php" method="post">bote a string:<br><input type="text" name="string"><br><input type="submit" value="Enviar" name="envia"><br><br></form>if($_POST["envia"]){	$string = $_POST["string"];  				$original = "$string";	$com_trim = trim("$string");	$sem_espac = trim($string," ");print("<br>string original: \"$original\"<br>string com trim normal:			\"$com_trim\"<br>string sem espaços: \"$sem_espec\"");					if(!trim("$string"))  print("<br>A string é vazia.");  else   print("<br>A string nao eh vazia.");	}?>

esse é o código.... executa pra você ver, a string sem espaços sai vazia "" :(

e se você substituir o $_POST["string"] por qualquer outro texto tipo "aqui minha string..", ele vai executar direitinho..

 

qual o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi também as aspas "$string"... isso força a conversão pra string diversas vezes... o próprio trim() retorna string independentemente do argumento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixiiii, disfarça.... heuahea nem vi o erro ali... o fabricio ta certo, eu escrevi errado :D quanto à conversão pra string diversas vezes.... isso tem algum contra? aliás, eu testei isso aki: $valor = "a a a a a";$string = trim($valor," ");print($string);nao deveria retornar aaaaa? ele retorna a a a a aesse trim nao vai destruir todos os espaços em branco? ou ele soh pega o caracter q tá no começo e no fim? se eu quiser destruir caracter no meio da string vo ter q deslocar bits igual no C? ou apenas com strreplace?

Compartilhar este post


Link para o post
Compartilhar em outros sites

trim -- Retira espaço no ínicio e final de uma string ltrim -- Retira whitespace do início da string rtrim -- Retira espaço em branco do final da string Se você quer substituir todos os espacos, use a função:str_replace -- Substitui todas as ocorrências da string de procura com a string de substituição

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do str_replace(), você pode usar expressões regulares pra limpar os espaços em branco... numa ER, pra você casar um espaço em branco é "\s"... ele casa barra de espaços, tabs e enters.

 

Falou!

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.