smarty Posted February 28, 2005 Report Posted February 28, 2005 kaa tad vislabaak apstraadaat datus (piem., komentaaru pirms ievietoshanas datu baazee)? pie tam ir veelme, lai var ievietot savu kodu, taapat kaa shinii forumaa (ar tagiem). visaadi izproveejos, bet kad es veicu shaadi [CODE] $txt = preg_replace('#\[php\](.+?)\[\/php\]#ies', "highlight_string('\\1', 1)", $txt); un tekstu apstraadaaju ar htmlspecialchar, tad tiek izdots bezsakars (vienalga, pirms koda hailaitoshanas vai peec). ja es tekstu neapstraadaaju (ar htmlspecialchar vai manuaali stripojot simbolus) tad hailaito smuki, bet nu pashi zinat, html kods visui sabojaa, bet kad apstraadaaju, tad sabojaa code saduru. kaadi risinaajumi? (bez BB pear pakas izmantoshanas)
smarty Posted March 1, 2005 Author Report Posted March 1, 2005 tieshaam neviens nav saskaaries ar shaadu probleemu?
рпр Posted March 1, 2005 Report Posted March 1, 2005 saakumaa uztaisi http://lv.php.net/manual/en/function.strip-tags.php, peec tam tos savus pseidotagus aizvieto ar nepiecieshamo html kodu ar str_replace().
bubu Posted March 1, 2005 Report Posted March 1, 2005 Īsti nesaprotu problēmu. Nu tev tak vajag izvadīt tos simbolus kas nav tajā php bbkodā ar htmlspecialchars() fju apstrādātus, bet tie kas iekšā - tos ar highlight_string() fju. Nu ta kur problēmas? Nu vēl otrs variants - to kas iekš tā php tega - apstrādāt ar html_entity_decode(highlight_string("\\1"), ENT_QUOTES), un pēc tam visu stringu vēlreiz ar htmlspecialchars() fju.
smarty Posted March 1, 2005 Author Report Posted March 1, 2005 Ilustrācija. Par testa tekstu tiek izmantots: sdfsdfsd d dfs <? echo 'aaa'; //fgdfg echo 'bbb'; //fgdfg </table></table></table></table></table></div></div></div></div></div></div></div></div> ?> rsdfsdf dfs dsf 1. apstrādāju ar $txt = preg_replace('#\[php\](.+?)\[\/php\]#ies', "highlight_string('\\1', 1)", $txt); $txt = htmlspecialchars($txt, ENT_QUOTES); iegūstu sdfsdf sd d dfs<code><font color="#000000"> <br /><font color="#0000BB"><? <br /> </font><font color="#007700">echo </font><font color="#DD0000">'aaa'</font>< ;font color="#007700">; </font& gt;<font color="#FF8000">//fgdfg <br /> </font>&l t;font color="#007700">echo </font><font color="#DD0000">'bbb'</font>< ;font color="#007700">; </font& gt;<font color="#FF8000">//fgdfg <br /></font><font color="#007700"></</font><font color="#0000BB">table</font><font color="#007700">></</font>& lt;font color="#0000BB">table</font><font color="#007700">></</font>& visādi izprovējos, bet rezultāts apmēram tāds pats
bubu Posted March 1, 2005 Report Posted March 1, 2005 Manuprāt ļoti korekts iznākums pēc highlight_string() un htmlspecialchars() fju pielietošanas.
Recommended Posts