Under Linux, I'm submitting a form containing text with \n
as the line ending. That's the HTML:
<form id='frmTxt' autocomplete='off' method='post' action='index.php'>
<p>Paste your text:</p>
<textarea name='txt'></textarea>
<button type='submit'>Submit</button>
</form>\n";
EDIT: In PHP, I do:
$txt = explode("\n",trim($_POST['txt']));
foreach ($txt as $t) {
$words = explode(' ',$t);
foreach ($words as $w) {
echo "$w ";
}
}
In the source code, after submitting a small text, I get:
Desde agosto não caía uma gota de chuva em Santiago. Ainda bem que nas torneiras — oh, leitor carioca, meu semelhante e meu irmão! — a água é abundante e limpa, e jorra à vontade para que à tardinha todo honesto cidadão possa regar suas plantas. Só na Inglaterra há gramados como no Chile, tão verdes, tão macios, tão perfeitos e lindos; o chileno trata o capim como se fossem flores.
Numa tarde vagabunda de sábado andei passeando pelo parque Balmaceda, cheio de árvores, crianças, flores e namorados. Não é proibido, felizmente, pisar na grama. É proibido colher flores e jogar bola, mas isso representa mais uma opinião das placas da Prefeitura que uma realidade humana. Aqui e ali três meninos jogam bola e uma garota colhe flores sem que o guarda, por esse motivo, perca seu bom humor. Também já fumei duas vezes no ônibus, ignorando o aviso, e ninguém me chamou a atenção; Chile, graças a Deus, é um bom país latino.
Mas falávamos de chuva; choveu. Choveu de tarde e a noite inteira, e o dia amanheceu enevoado. Depois o céu foi se limpando — e há três dias, enquanto a lua cresce, ele está azul, esplêndido, sem uma nuvem. Assim chegou o frio, ainda moderado, sem descer além dos 7 graus. Mas, com a chuva, o ar ficou mais fino e o alto cimo da Cordilheira se cobriu de neve.
É difícil contar esse lado da paisagem, esse alto horizonte, essa imensa muralha azul toucada de neve que brilha ao sol. Quando o sol vai morrendo do outro lado do horizonte, a Cordilheira começa a mudar de cor — a Montanha se faz violeta, a neve às vezes tem reflexos púrpuros ou róseos, o azul do céu vai se fazendo mais grave no crepúsculo alto e solene.
Santiago não tem mar; mas tem, a leste, essa presença de abismo e de infinito, essa paisagem de estranha força, pureza e paz — de uma oceânica beleza.
I only have one \n
for each paragraph of the original text, so why do they remain in the array after calling the first explode?
EDIT2:
Now I understand it even less!
I copied the original file to Bless Hex Editor, and it shows a single 0A (\n) after each paragraph. PHP, however, outputs nothing inside the brackets for echo "[".strpos($t,"\n")."]";
and numeric positions for echo "[".strpos($t,"\r")."]";
.
Did my computer just went nuts or is it me?
PS: Now Bless just crashed... :(
Use preg_split and run this regular expression:
$txt = preg_split('/\r\n|\n|\r/', $_POST['txt']);
Should work, no matter what environment your input is coming from