Avatar billede jesper-madsen Nybegynder
24. juli 2005 - 23:43 Der er 26 kommentarer og
1 løsning

Ersatte <br> med \n i en udskrivning.

Hvordan får jeg fx. <br> til at blive til "\n" i en udskrivning fra $row[tekst] ?
Avatar billede barklund Nybegynder
24. juli 2005 - 23:45 #1
Det er jo bare str_replace:

print str_replace("<br>","\n",$text);

Andet er der ikke i det :)

--
Morten Barklund
Avatar billede jesper-madsen Nybegynder
24. juli 2005 - 23:49 #2
<?php
$text = $row[tekst];
$text = str_replace("<br>","\n",$text);
$text = htmlentities($text);
print $text;
?>

-- Bruger jeg.
Men udskriver ingen linjebrud?
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 00:13 #3
sorry.. der skulle stå <br /> smid svar !
Avatar billede kdjweb Nybegynder
25. juli 2005 - 00:16 #4
<?php
echo str_replace("<br>","\n",$row['tekst']);
?>

gør den det hvis du skriver det?
Avatar billede kdjweb Nybegynder
25. juli 2005 - 00:16 #5
for langsom
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 00:19 #6
Jo, den skal slette ALT html undtagen <br> for det skal blive til \n ..
Avatar billede barklund Nybegynder
25. juli 2005 - 00:20 #7
JA, det kunne jeg jo ikke gætte mig til ;)
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 00:23 #8
barklund, læste du dette?
"..den skal slette ALT html undtagen <br> for det skal blive til \n .."

- Det gør dit ikke! Men fortæl mig hvorfor dette ikke virker :)


<?php
$k = str_replace("<br>","\n",$row['tekst']);
$text = htmlentities($k);
echo $text;
?>

den erstatter ikke <br> med \n dér
Avatar billede kdjweb Nybegynder
25. juli 2005 - 00:29 #9
$tekst = str_replace ( '<br />', '\n', $row['tekst'] );
$tekst = str_replace ( '<', '&lt;', $tekst );
$tekst = str_replace ( '>', '&gt;', $tekst );
echo $tekst;
drille drille
Avatar billede reffo Nybegynder
25. juli 2005 - 00:52 #10
Så gør sådan her:

<?PHP
$text = strip_tags($row[text], '<br />')
$text = str_replace("<br />","\n", $text);

echo $text
?>
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 01:08 #11
Ingen af jeres svar virker..
reffo - dit fjerner alle < og > og laver ikke linjebrud.


kdjweb - Dit sletter bare alle html tagsne.
Avatar billede snapela Nybegynder
25. juli 2005 - 01:16 #12
hvorfor vil du erstatte <br> med \n når det ikke kan ses i outputtet ?
det kan jo kun ses når man kigger kildekoden igennem.
Avatar billede reffo Nybegynder
25. juli 2005 - 01:18 #13
Ja, du skrev: "Jo, den skal slette ALT html undtagen <br>"

strip_tags sletter her alt html bortset fra <br />.

Prøv at bytte dem rundt. Så du det vist.

<?PHP
$text = str_replace("<br />","\n", $text);
$text = strip_tags($row[text], '<br />')

echo $text
?>
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 01:22 #14
Hmm, tæt på! Nu sætter den linjebrud, men det skal være sådan hvis jeg indsætter i databasen:
<h1>1</h1><br><h2>2</h2><br>
så skal den vise <h1> bare ikke som HTML men aligevel bliver <br> til \n :)?
Avatar billede reffo Nybegynder
25. juli 2005 - 01:26 #15
Du vil altså ikke have fjernet al html, den skal bare ikke afvikles?

Så er det htmlentities du skal bruge istedet for strip_tags

<?PHP
$text = htmlentities($text)
$text = str_replace("<br />","\n", $row[text]);

echo $text
?>
Avatar billede reffo Nybegynder
25. juli 2005 - 01:33 #16
Ja, nu formåede jeg så igen at rode rundt i det hele. Mangler søvn... Argh:)

<?PHP
$text = str_replace("<br />","\n", $row[text]);
$text = htmlentities($text)

echo $text
?>

Sådan, så skulle det du :D
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 01:33 #17
udskriver stadig html..
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 01:34 #18
<?php
$text = $row['tekst'];
$text = str_replace("<br>","\n", $row[tekst]);
$text = htmlentities($text);
print $text;

?>

men nu laver den ikke \n :P
Avatar billede reffo Nybegynder
25. juli 2005 - 10:41 #19
Ja, du har lige sagt at den skal skrive <h1>1</h1> og sådan, og det gør den jeg skrev sidst, men den afvikler ikke html'en.

Skriver du selv $text = $row[text] til? For så dur det ikke. Prøv det her i så fald...

<?PHP
$text = $row[text];
$text = str_replace("<br />","\n", $text);
$text = htmlentities($text);

echo $text
?>
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 17:07 #20
Virker hellere ikke :\
den udskriver ingen linjebrud :s
Avatar billede reffo Nybegynder
25. juli 2005 - 17:13 #21
Altså det gør den ved mig. Vis mig lige dit output. Vil du have den til at skrive \n som tekst??? Så man kan se det, eller skal det bare lave et liniebrud i kildekode?
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 17:18 #22
I kolonnen "tekst" ->

Er du træt af og have de små skrift størrelser på din profil? - Så har du muligheden for at gøre den endnu federe. For netop nu kan du lave 6 forskellige størrelser, som ikke fylder ret meget i deres HTML.
<h1>Størst</h1>
<br>
<h2>2. størst</h2>
<br>
<h3>3. størst</h3><br>
<h4>4. størst</h4>
<br>
<h5>5. størst</h5>
<br>
<h6>Og den mindste</h6>


- <br> skal blive til linjebrud, og de andre tags skal bare blive stående UDEN af have en virkning, fx. <h5>..</h5> skal ikke udskrives som HTML, bare tekst.
Avatar billede barklund Nybegynder
25. juli 2005 - 17:33 #23
Nu gætter jeg lige vildt i tågen her (selvom jeg nu har svaret på det oprindelige spørgsmål, der blot viste sig at være mangelfuldt formuleret):

<?PHP
$text = $row[text];
$text = str_replace("<br />", "NEWLINE", $text);
$text = htmlentities($text);
$text = str_replace(""NEWLINE", "<br />", $text);
echo $text
?>

Er det måske dette, som du vil?

--
Morten Barklund
Avatar billede reffo Nybegynder
25. juli 2005 - 17:37 #24
Ja, sådan som du har lavet det, barklund, har jeg også forstået det nu.
Avatar billede jesper-madsen Nybegynder
25. juli 2005 - 18:33 #25
Perfekt!
Avatar billede barklund Nybegynder
25. juli 2005 - 18:44 #26
Så lad være med at mumle \n - det havde intet at gøre med, hvad der rent faktisk skulle ske :)

Hvis du ikke lige kan overskue problemstillingen, så forklar dig ud af det så ikke-teknisk som muligt - for hvis du indfører et eller andet begreb (her et ascii linjeskift), så tror vi jo, at det er det, som du ønsker. Og det er det slet ikke.

--
Morten Barklund
Avatar billede barklund Nybegynder
25. juli 2005 - 18:44 #27
Og tark for points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester