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

Drone

Uma só linha

16 mensagens neste tópico

Boas tenho um tooltip do tipo:

onmouseover="return tooltip('mensagem aqui.');"

O problema é que ali na "mensagem aqui" eu tenho uma variavel <?=$comentario?> e caso o texto que esteja na variavel tenha \n o script breaka-se todo, o que gostava de saber é se existe maneira de passar a mensagem toda para uma linha só.

por exemplo

Ola xpto

como é que é

tasse bem

Ola xpto<br>como é que é<br>tasse bem
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim o nl2br ja estou a utilizar o problema é que o nl faz isto:

paragrafo 1

paragrafo2

paragrafo3

paragrafo1<br>

paragrafo 2<br>

paragrfo 3

o que eu quero é mesmo:

paragrafo1<br>paragrafo 2<br>paragrfo 3
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes usar o preg_replace, e substituir o \n por <br />, ate e melhor do que a nl2br, pois nao cumpre os standards...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes usar o preg_replace, e substituir o \n por <br />, ate e melhor do que a nl2br, pois nao cumpre os standards...

Nota:  Começa no PHP 4.0.5, nl2br() está agora em XHTML complacente. Todas as versões anteriores a 4.0.5 retornarão string com '<br>' inserido antes das newlines ao invés de '<br />'.

Estas traduções brasileiras partem-me todo... :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?
$texto = "paragrafo1

paragrafo2.

paragrafo3.
";
echo preg_replace("'\n'is", "<br />", $texto);
?>

Retorna-me:

paragrafo1
<br />
<br />paragrafo2.
<br />
<br />paragrafo3.
<br />

e eu queria:

paragrafo1<br /><br />paragrafo2.<br /><br />paragrafo3.<br />

Ja tentei fazer 1001 cenas mas nao consigo :S Eu quero por isto numa linha so porque o javascript da-me erro!

Assim dá-me bem:

onmouseover="return overlib('paragrafo1<br /><br />paragrafo2.<br /><br />paragrafo3.<br />');"

Assim dá-me erro:

onmouseover="return overlib('paragrafo1
<br />
<br />paragrafo2.
<br />
<br />paragrafo3.
<br />');"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Thanks ppl ja consegui !! ;)

$it=str_replace("
","",nl2br($it));

é mesmo assim, n é \n ;)

Só isso nao chegava tive de colocar assim:

function sameLine($texto) {

return str_replace(array("

", "

", "\n", "\r", "\t"),"",$texto);

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

function sameLine($texto) {

return str_replace(array("

", "

", "\n", "\r", "\t"),"",$texto);

}

function sameLine($txt) return str_replace(array("
","\n","\r","\t"),"", $txt);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

function sameLine($texto) {

return str_replace(array("

", "

", "\n", "\r", "\t"),"",$texto);

}

function sameLine($txt) return str_replace(array("
","\n","\r","\t"),"", $txt);

O código do Drone esta melhor.. não utilizaste {} ;);)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código do Drone esta melhor.. não utilizaste {} ;);)

oO ? n funca sem as {} ? devia dar como os ifs e afins...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código do Drone esta melhor.. não utilizaste {} ;);)

oO ? n funca sem as {} ? devia dar como os ifs e afins...

É sempre melhor utilizar {} nos ifs etc. porque isso pode causar alguns erros... os melhores scripts são os mais completos :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É sempre melhor utilizar {} nos ifs etc. porque isso pode causar alguns erros... os melhores scripts são os mais completos :D

Em alguns casos não são precisos. coisas do género:
if($blah==true) echo "weeee";
elseif($blah==false) echo "uhhhh";
else echo "wtf?";

atrofia ter as {}.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

atrofia porquê ? Tu se calhar é que te habituaste a programar duma forma que não é das melhores :D Mas pronto cada um programa como quer e aprendeu :)

EDIT: um pequeno exemplo

Eu antes programava assim:

<?php
$x="teste";
echo $x;
if($x==true) { echo"true"; 
} else { echo"false"; }
function x($var){
echo $var;
}

Porquê que eu programava assim ?

Porque me tinha habituado

Para mostrar que sei programar "muito" e para mostrar que programar é dificil

Para complicar outras pessoas e assim fazer com que eles pensem que o código é dificil

Para que as outras pessoas não entendam o código etc..

Isso me ajudava em alguma coisa ? "claro que não" por isso eu começei a programar assim

<?php

$x = "teste";

echo $x;

if($x == true) { 
echo "true"; 
} else { 
echo "false"; 
}

function x ( $var ) {
echo $var;
}

Porque isso para além de me facilitar na hora de corrigir o código tambem faz com que as outras pessoas entendam o código e assim aprendem a programar mais rapido e da forma mais correcta. É certo que isso aumentava mais algumas linhas no código mas é apenas uma questão de organização do código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

qd tens uma função que só faz um return, ter {} só te vai confundir. se for algo mais elaborado, uso as {}

function blah($str, $sep=" ", $pos=0, $end=false){
$dummy=explode($str, $sep);
if(!$end) return $dummy[$pos];
$newstr="";
for($i=$pos;$i<count($dummy;$i++) $newstr.=$dummy[$i].$sep;
return rtrim($newstr,$sep);
}

PS: não tá identado pk n tenho tab no browser :\

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