10. august 2005 - 10:06Der er
11 kommentarer og 1 løsning
nl2br Fungere på text men ikke på kode
Jeg har en side hvor jeg henter hele hovedeindholdet ind gennem en Mysql database, det sker på følgende måde
$database = mysql_connect("localhost", "User", "Password"); mysql_select_db("Database", $database); $product = mysql_query("select * from sitetext where Id = '$Site'"); $result= mysql_fetch_assoc($product); eval("?>". $str = nl2br($result['Text']));
Problemet er bare at når jeg exekvere siden med ovenstående kode er typografien rigtig nok på ren html men siden fejler hvis der ligger noget php i database.
Parse error: parse error in E:\Side\t\index.php(198) : eval()'d code on line 1
Fjerner jeg nl2br så køre siden igen med php tags i databasen, men den viser så alm text helt uden nogen form for typografi,
Findes der en måde at sammenkæde Eval og nl2br på ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Problemet er jo, at php kode, som f.eks.: <? echo "Hej"; ?> efter at have været igennem nl2br, vil se sådan her ud: <?<br>echo "Hej";<br>?> Hvilket jo ikke er valid php kode. Har du ikke mulighed for at køre din HTML kode igennem nl2br inden du smider det i databasen?
Ellers skal du ud og lave noget slamkode, hvor du tager alt <? ... ?> ud og resten smider du igennem nl2br(). Det må kunne lave med noget regexp... Giv mig lige et par minutter, sidder lige med noget andet.
Denne er jeg ikke helt tilfreds med, men... preg_match_all('/<[^?].*?<\\?/s', $input, $output); (den fanger html mellem <? og ?> tags... Men har du f.eks. </html> til sidst, så fejler den... :o( Og har ikke tid til at kigge mere på det lige nu!
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.