• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nuno_couto

Eliminação de mudança de linha...

32 mensagens neste tópico

Viva.

Estou com um problema estranho (penso eu).

Vou colar dois códigos:

$teste1=$_POST['teste1'];


$teste1=str_replace("
","",$teste1);

echo"$teste1";

$teste2=
"
teste2
teste2
teste2";

$teste2=str_replace("
","",$teste2);

echo"$teste2";

No segundo código, pegando na variável e aplicando-lhe o str_replace, estou a conseguir transformar as 3 linhas numa só obtendo teste2teste2teste2

Mas no primeiro caso, a variável é um texto obtido apartir de um formulário. Não sei porquê, mas o código não resulta, ou seja, o resultado deste script é:

teste1

teste1

teste1

Não deveria acontecer o mesmo que no 2º caso, unindo-se tudo numa linha? O que devo fazer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no srt_replace, poe

$teste2 = str_replace("\n","",$teste2);

echo $teste2;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

karva... o problema está no teste1 (o que vai buscar informação ao formulário)

Já tentei da seguinte forma e dá igual:

$teste1=$_POST['teste1'];

$teste1=str_replace("\n","",$teste1);

echo"$teste1";

Continuo sem perceber... a unica diferença entre $teste1 e $teste2 é a origem do texto... no caso 1 vai buscar ao formulário... não percebo porque não consigo eliminar as linhas da mesma forma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta assim

$teste1=$_POST['teste1'];
$teste1 = nl2br($teste1);

$teste1=str_replace("<br />","",$teste1);

echo"$teste1";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@nuno_couto

Tenta assim

$teste1=$_POST['teste1'];
$teste1 = str_replace( " ", "", $teste1 );
echo $teste1;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@kingless,

acho que ele so quer tirar as quebras de linha, mais nada.

É mais fácil se ele dizer o que ele quer e nao tu dizeres o que ele quer :( (kidding)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continua sem funcionar :(

Eu penso que isto tem a ver com alguma alteração no php (actualização) porque este script ja funcionou...

Vou colar um código pra tentar mostrar o que se esta a passar:

Introduzo o seguinte texto no formulario:

teste1

teste1

teste1

$teste1=$_POST['teste1'];

$teste1=str_replace("
","x",$teste1);

echo"$teste1";

O resultado que estou a obter é o seguinte:

teste1

xteste1

xteste1

Ou seja, a mudança de linha está a ser detectada, mas não está a ser substituida correctamente. Não percebo isto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu quero eliminar as linhas, ou seja, passar o texto do form todo para uma linha

teste1

teste1

teste1

para:

teste1teste1teste1

* mas o que acho estranho é funcionar se eu criar a variavel no script, e só não funciona quando vai buscar a variável ao formulário

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
<form method="POST" action="teste.php">
<p><textarea rows="14" name="teste1" cols="20"></textarea><input type="submit" value="Submeter" name="B1"><input type="reset" value="Repor" name="B2"></p>
</form>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimentei aqui o código e funcionou, não sei porquê que não funciona ai...

O código:

<form method="POST" action="teste.php">
<p><textarea rows="14" name="teste1" cols="20"></textarea><input type="submit" value="Submeter" name="B1"><input type="reset" value="Repor" name="B2"></p>
</form>
<?php
$teste1 = $_POST['teste1'];

$teste1 = str_replace( "
", "x", $teste1 );

echo $teste1;
?>

EDIT:

Atenção... Isto:

$teste1 = str_replace( "
", "x", $teste1 );

é a mesma coisa que

$teste1 = str_replace( "\n", "x", $teste1 );

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

kingless.... em html o output vem todo na mesma linha, mas se vires o source está em linhas separadas...

* digo eu... aqui está a acontecer isso

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tenho 2 alojamentos :( um com php4 e outro com php5 e nenhum está a trabalhar... mando o link:

http://www.vyzen.com/teste/teste.php

o código desse ficheiro é:

<form method="POST" action="teste.php">
<p><textarea rows="14" name="teste1" cols="20"></textarea><input type="submit" value="Submeter" name="B1"><input type="reset" value="Repor" name="B2"></p>
</form>
<?php
$teste1 = $_POST['teste1'];

$teste1 = str_replace( "
", "", $teste1 );

echo $teste1;
?>

* vejam o q acontece sff

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque eu preciso de eliminar as quebras de linhas para usar uma função... e essa função necessita da variável toda numa só linha... Não percebo porque não dá... se eu eliminar a parte do formulário e criar a variável

qq coisa como

$teste1=

"

teste1

teste1

teste1

";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Algum de vocês me faz o favor de verificar aí se no source está a resultar? Será alguma configuração no meu alojamento?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os <enter> na textarea colocam \n\r se não estou em erro, tenta substituir ambos por um " ". :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Working :(

Fantastico :P Esta-se sempre a aprender!

Muito obrigado pela ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja agora colo aqui o código a funcionar:

<form method="POST" action="teste.php">
<p><textarea rows="14" name="teste1" cols="20"></textarea><input type="submit" value="Submeter" name="B1"><input type="reset" value="Repor" name="B2"></p>
</form>
<?php
$teste1 = $_POST['teste1'];

$teste1 = str_replace( "\n", "", $teste1 );
$teste1 = str_replace( "\r", "", $teste1 );

echo $teste1;
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta assim:

<form method="POST" action="teste.php">
<p><textarea rows="14" name="teste1" cols="20"></textarea><input type="submit" value="Submeter" name="B1"><input type="reset" value="Repor" name="B2"></p>
</form>
<?php
$teste1 = $_POST['teste1'];

$teste1 = str_replace('\r\n', "", $teste1 );

echo $teste1;
?>

EDIT: Algo estranho se passa neste forum (já me aconteceu antes..), só vejo respostas anteriores á minha (a do marinheiro neste caso) depois de postar, mesmo tendo muitos minutos de diferença!  :( :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda bem que ja esta a funcionar -.-

$teste = $_POST['teste'];
$retirar = array( "\n" => " ", "\r" => " ", " " => "" ); //podes adicionar aqui mais coisas que quiseres retirar do input do formulario 
echo str_replace( "  ", " ", strtr($teste, $retirar));

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora