AndzX8-842 Posted November 17, 2005 Report Share Posted November 17, 2005 Atrast tekstā noteiktus simbolus / frāzes un nevienāda skaita gadijumā pievienot tekstam vēl pāris. Tātad $teksts glabā kaut kādu informāciju. Un kā tas nereti gadās, piemēram, izmantojot <b></b> kādreiz piemirstas nobeidzošais tegs. Tālāk jau var novērot situāciju, kad visu aiz neaizvērtā tega atrodošos tekstu, saites...vienalga ko var vērot iebiezinātu ar <b>. Loģiski domājot ienāca prātā, ka vienkārši ir jāsaskaita vai ir tekstā vienāds skaits <b> un </b> tegu un to pašu darīt ar pārējiem BBCode tegiem. Ja skaits ir nepāra, tad $tekstam galā jāpievieno vēl vienu </b> vai nu, kas tur prasās...</i>, </u>, utt. Līdz ar to sabojāts būtu tikai komentārs, paziņojums vai nu kur nu katrā gadjumā izmanto BBCode. Tikai nezinu kā to izdarīt. Vai nu saite uz php manuāli vai kāds piemērs noderētu, paldies. Link to comment Share on other sites More sharing options...
black Posted November 17, 2005 Report Share Posted November 17, 2005 Pieņemsim,ka jūzeris lāgā nepārzina html, un ieraksta kaut ko tamlīdzīgu: '</b><b></b>' Un tad tava programma sapratīs, ka vajag vēl vienu atverošo <b>, un pieliks to beigās? Link to comment Share on other sites More sharing options...
v3rb0 Posted November 17, 2005 Report Share Posted November 17, 2005 likt vajag tikai aizverošos.. tad tā nevarētu būt ka pieliek atverošo Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 17, 2005 Report Share Posted November 17, 2005 userim vispar nevajag atljaut ievadiit html tagus.... ja savaadaak nevar/negrib tad [tags] bet nekaadaa gadijuma <tags> Link to comment Share on other sites More sharing options...
bubu Posted November 17, 2005 Report Share Posted November 17, 2005 Vienalga labi nesanāks: "<b><i></b>" pārveidosies uz "<b><i></b></i>". Vajag skatīties arī kurā vietā likt tos aizverošos. Nevis beigās likt, bet braukt cauri tekstam, likt stekā atverošos tegus, līdzko sastop aizverošo paskatās uz steka virsotni - ja sakrīt tegi, tad ir ok un izvelk no steka. Bet ja nesakrīt, tad ieliek no steka virsotnes tos aizverošos tegus tekstā, kamēr sastop atbilstošu aizverošo tam, kas ir tekstā atrasts. Un tad turpina. Link to comment Share on other sites More sharing options...
Roze Posted November 17, 2005 Report Share Posted November 17, 2005 userim vispar nevajag atljaut ievadiit html tagus....ja savaadaak nevar/negrib tad [tags] bet nekaadaa gadijuma <tags> A kāpēc ne? Ja tas ir mazs wyiwyg editors.. tad tagi ir ļoti ok.. Reti kurš lietotājs saprot kā izskatīsies vai hvz vēl kas.. Protams krietni rūpīgāk ir jātaisa arī iepostotā teksta apstrāde.. Ja gribās html koda kaut kādu validēšanu kleanupu var izmantot tidy http://www.w3.org/People/Raggett/tidy/ .. http://lv.php.net/tidy bet tam būs jauzliek vai nu no PECL modulis vai arī var arī darbināt executabli Personīgi lietoju: tidy_parse_string($text); tidy_clean_repair(); $text = tidy_get_output(); Un ļoti ok cleano/repairo no visām word u.c. ķeskām.. Link to comment Share on other sites More sharing options...
AndzX8-842 Posted November 17, 2005 Author Report Share Posted November 17, 2005 (edited) Pēc standartiem varbūt arī nebūtu, bet skāde tomēr mazinās. Un jā, pavisam noteikti, klāt likt vajadzētu tikai aizverošo tegu. Man tagad nepieciešama tikai 4 tagu pārbaude...<i>,<b>,<u> un <blockquote>. Protams, ka BBCode tiek pielietots(,,,[blockquote]), visi pārējie html tegi tiek pārvērsti...nu vienkārši htmlspecialchars() izmantojot par ko nu katrs tur tiek mainīts. Kaut kādas papildus pakas, tidy filtri, nē tas man nederēs...vajag neatkarīgi no servera, lai strādātu. Edited November 17, 2005 by AndzX8-842 Link to comment Share on other sites More sharing options...
Klez Posted November 17, 2005 Report Share Posted November 17, 2005 ar javascript var meeginaat tos tegus tvarstiit, ja php tad ar preg_ finkcijaam vai masiiviem kkkaa ;) Link to comment Share on other sites More sharing options...
bubu Posted November 17, 2005 Report Share Posted November 17, 2005 Varbūt der kautkas šāds: http://simon.incutio.com/code/php/SafeHtml...r.class.php.txt Link to comment Share on other sites More sharing options...
AndzX8-842 Posted November 17, 2005 Author Report Share Posted November 17, 2005 (edited) $checker->check Man kaut kā šis tieši nepatīk, tiem "->" atbalstu gadienā nedod PearDB? Man tādas izteiksmes php nestrādā ar "->." Interesanti šķiet, ka nevar vienkārši saskaitīt, cik daudz ir viena un tā pati frāze iekš kāda $string. Tik daudz funkciju php, bet kaut ko tik vienkāršu nevar izdarīt. Princips jau būtu vienkāršs, ja būtu ar ko saskaitīt tos <i>, <u>,... $elementi_a $elementi_b $elementi_a / elementi_b = elementu_dalijums ja ( $elementu_dalijums != 1 ) { piemetam galaa tegu } <EDIT> http://lv.php.net/manual/en/function.preg-replace.php Ir iespējams saskaitīt, cik daudz frāžu tika aizvietotas ar citam...tas atrisinātu problēmu, ja vien, tā nebūtu PHP5.1.0 versija, kopš kuras tika ieviests COUNT. Man ir nedaudz vecāka, kurā tādas lietas vēl diemžēl nav. </EDIT> Edited November 17, 2005 by AndzX8-842 Link to comment Share on other sites More sharing options...
bubu Posted November 17, 2005 Report Share Posted November 17, 2005 (edited) $checker->check Man kaut kā šis tieši nepatīk, tiem "->" atbalstu gadienā nedod PearDB? Man tādas izteiksmes php nestrādā ar "->." Kas par muļķībām? Tā ir normāla OOP sintakse. $elementi_a / elementi_b = elementu_dalijumsja ( $elementu_dalijums != 1 ) { piemetam galaa tegu } Ak dievs... Kāpēc ne, ja ($elementi_a != $elementi_b) { ... } ??? <EDIT> http://lv.php.net/manual/en/function.preg-replace.php ... preg_match_all(..) ? Edited November 17, 2005 by bubu Link to comment Share on other sites More sharing options...
AndzX8-842 Posted November 17, 2005 Author Report Share Posted November 17, 2005 Jā, ideja apmēram varētu būt tāda kā preg_match_all, bet kā to savienot ar preg_replace? Nezinu...lūk, būtu kāds, kas no phpBB ir izmaherējis laukā kodu, kas atbild par BBCode, būtu vislabakais variants. Izdarītu to pats, ja saprastu, kas ir kas, kas nav tas un kas ir tas īstais "Kas," kuru vajag. Link to comment Share on other sites More sharing options...
bubu Posted November 17, 2005 Report Share Posted November 17, 2005 1) saskati visus cik vajag ar preg_match_all 2) aizvieto ko tev tur vajag ar tādu pašu regexpu kā tam match_all ... bet nez.. es labā skatītos uz to variantu manis iedotā linkā. Link to comment Share on other sites More sharing options...
Recommended Posts