line breaks

Tags:    php

<< < 12 > >>
Jeg har lige brugt denne funktion på min hjemmeside til at hent line breaks fra tekst i databasen

" <?php print nl2br($display_block11) ?> "

Det virker, men nu har jeg fået problemer hvor jeg får, før og efter teksten meget plads som jeg kan ikke slet.

har sat teksten ind i en tabel, men jeg får bare "white space" før og efter tabelen.

er der måske en der kan hjælp?





15 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato

Hej Paul,

Hvis du har hele html dokumenter med tables ect i databasen, skal du ikke benytte nl2br på de hentede data. Linjeskift i HTML skal ignoreres oftest ;) Marker det tydeligt hvis du ikke føler at der er svaret på problemet.

[antager her at tables html koder ikke ligger i data hentet fra databasen, hvorpå der er benyttet nl2br]
For mig at se er det et spørgsmål om at du ikke har kodet dit table ordentligt, der kommer i hvert fald en masse <br />'s som jeg ville mene giver "utilsigtede mellemrum".

<br /> skal ikke være udenfor <tr> </tr> i tables. Overhovedet - ALDRIG!

Yderligre, det er ikke klart markeret hvad der hentes ud fra databasen.

Med venlig hilsen
Ieet




Indlæg senest redigeret d. 08.04.2008 15:13 af Bruger #12836
Prøv med:

<?php print nl2br(trim($display_block11)) ?>



har selv haft det problem også, og det var fordi jeg havde gkent <td> nogle steder, og derfor kom det bare op foroven.
og der varn oget med en <br> også. kan ikke helt huske.

men prøv lige at tjekke din tabel efter :)



Hej Paul,


Fejl er der en del af i din HTML code. Ydremere, så må man ikke bruge nl2br() på HTML kode. Hvis du vil lave line skift i HTML, kan du for vær linje afslute med "\\n", så laver PHP et linjeskift fordi.

Men, det er nogle ting hvis din HTML som også kan give dig lidt knas i maskineriget, så...

prøv med dette her:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 08.04.2008 16:18 af Bruger #11375


Hej Paul,

Hvis de 2 ovenstående posts ikek hjælper, så post et link til hjemmesiden, hvor du har markeret
"Fra: <?php print nl2br(trim($display_block11)) ?> "
og " Slut: <?php print nl2br(trim($display_block11)) ?> "

Så kan vi lettere se hvad der muligvis kan give problemet.

Med venlig hilsen
Ieet





Hej og tak for jeres svar

har prøvet de forslag, men desværre virket ikke.

Her er linket: http://hutchison.dk/lytzen/about_us.php?cat_id=19

har givet tables borders så at det kan ses tydelig.

Mvh
Paul



Hej igen Ieet

hvis vi kigger på "start another block" her hentes et styk text fra databasen, det var også det første jeg prøvet med det "<?php print nl2br(trim($display_block11)) ?> "

Her er tabelen til det:
$display_block1 .= "
<table width=430 border=1 cellspacing=0 cellpadding=0 align=center>
<tr>
<td bgcolor=#cfddfa scope=col><img src=\\"images/solutions/solutions_top_1.jpg\\">
</td>
</tr>

<tr>
<td bgcolor=#cfddfa class= design_1><P>$full_text</p>
</td>
</tr>

<tr>
<td><img src=\\"images/solutions/solutions_bottom_1.jpg\\">
</td>
</tr>
</table>";

Kan ikke find fejl i tabellen.

håber at du kan hjælp.




Hej Paul,

Som jeg skrev, når din streng variabel indeholder HTML kildekode, som <table>, <tr> og <td> skal der ikke udføres nl2br på den. Og så kan du også fjerne "trim".

Med venlig hilsen
Ieet

Ps. Muligvis vil du lave en nl2br og trim på $full_text



Indlæg senest redigeret d. 08.04.2008 16:00 af Bruger #12836
ok, GOT IT! så skal jeg bare fjerne table, men hvordan kan jeg kontrollere design? bare set det ind på forskelligt div's?

mange tak for hjælp Ieet



Hej Paul,

Nej! Du skal bare ikke udføre en nl2br på en string med table.

Det er følgende linje der giver problemet:
"<?php print nl2br(trim($display_block11)) ?> "
Udskift med:
"<?php print $display_block11 ?> "

$display_block11 indeholder et table. Derfor ingen nl2br

I den kodesegment du postede vil du dog lave en nl2br på $full_text med:
$full_text = nl2br(trim($full_text));
(placeres ovenover den kode du postede)

Med venlig hilsen
Ieet





Indlæg senest redigeret d. 08.04.2008 16:09 af Bruger #12836
<< < 12 > >>
t