smarty Posted February 28, 2005 Report Share 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) Link to comment Share on other sites More sharing options...
smarty Posted March 1, 2005 Author Report Share Posted March 1, 2005 tieshaam neviens nav saskaaries ar shaadu probleemu? Link to comment Share on other sites More sharing options...
рпр Posted March 1, 2005 Report Share 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(). Link to comment Share on other sites More sharing options...
bubu Posted March 1, 2005 Report Share 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. Link to comment Share on other sites More sharing options...
smarty Posted March 1, 2005 Author Report Share 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 Link to comment Share on other sites More sharing options...
bubu Posted March 1, 2005 Report Share Posted March 1, 2005 Manuprāt ļoti korekts iznākums pēc highlight_string() un htmlspecialchars() fju pielietošanas. Link to comment Share on other sites More sharing options...
Recommended Posts