Avatar billede ewax Nybegynder
26. august 2008 - 15:46 Der er 8 kommentarer og
1 løsning

Lidt problemer med nl2br

Jeg har lidt mixede data i et alm textarea som jeg gemmer i min database.

mit problem er at jeg gerne vil holde det meget simpelt, så man kan bruge html og tekst sammen.

men når jeg skriver
en tekst
sådan her bliver den jo opdelt via nl2br

men når jeg indsætter en tabel som
<table>
<tr>
  <td></td>
  <td></td>
</tr>
</table>

så laver den linjeskift efter hvert tag, som jo bliver skudt ind lige over tabellen

har prøvet med noget replace </table>\n </tr>\n </td>\n etc. men syns ikke lige jeg kan bevare overblikket over hvad der sker pga træthed :)

er der nogen der har været ude for samme problemstilling? håber i forstår da det sikkert er skrevet lidt "blankt"
Avatar billede jakobdo Ekspert
26. august 2008 - 15:55 #1
Hvis du skriver:

<table>
<tr>
  <td></td>
  <td></td>
</tr>
</table>

Og smider det igennem nl2br(), hvad siger du så det bliver til ?
Og hvad vil du have det skal blive til ?
Avatar billede leif Seniormester
26. august 2008 - 15:56 #2
Du bruger sikkert et textarea, men hvad med at bruge en HTML editor som fx. FCKEditor
Avatar billede ewax Nybegynder
26. august 2008 - 16:06 #3
jakobdo

<table><br />
<tr><br />
  <td></td><br />
  <td></td><br />
</tr><br />
</table><br />

Men fik lavet den her, hvilket fjerner det.. men sætter jeg foreksempel width='' ind på mit <table> tag holder den jo ikke helt.. :)

så leder efter en bedre løsning..

  $content = $r1['content'];
  $content = stripslashes(nl2br($content));
 
  $content = str_replace("<table><br />", "<table>", $content);
  $content = str_replace("</table><br />", "</table>", $content);
  $content = str_replace("<tr><br />", "<tr>", $content);
  $content = str_replace("</tr><br />", "</tr>", $content);
  $content = str_replace("<td><br />", "<td>", $content);
  $content = str_replace("</td><br />", "</td>", $content);


Kender godt fckeditor og et par andre, men ville helst uden om disse den her gang :)
Avatar billede jakobdo Ekspert
26. august 2008 - 17:21 #4
Du kunne nøjes med en replace, som hed:
$content = str_replace("><br />", ">", $content);
Avatar billede ewax Nybegynder
27. august 2008 - 11:44 #5
Det overvejede jeg, men vil gerne ha efter fx <b> <i> <u> <img> etc :)
Avatar billede jakobdo Ekspert
27. august 2008 - 12:24 #6
Hvad så meget noget ala:

$result = preg_replace('%<(/?)(table|td|tr)([^<]?)><br />%i', '<$1$2$3>', $subject);
Avatar billede ewax Nybegynder
04. november 2010 - 15:36 #7
jeg stirrer mig stadig blind på regexp.. :)

er ved at lukke gamle åbne tråde. vil du ha nogle points for din tid? eller skal jeg bare lukke ned?
Avatar billede jakobdo Ekspert
04. november 2010 - 15:40 #8
Du bestemmer.
Du får ihf. et svar. :o)
Avatar billede jakobdo Ekspert
11. november 2010 - 15:20 #9
Takker for point
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