Chciałem w tym temacie abyście zamieszczali swoje rozwiązania dotyczące zabezpieczenia danych wprowadzanych z textarea. M. in
- umieszczanie długich wyrazów bez spacji co powoduje rozjeżdrzanie się grafiki
- dodawanie za dużo enterów co tworzy pustą przestrzeń
itd
Jako przykład zamieszcze tu swoją klase. Jest troche primitywna po pisana dawniej ale w jakimś tam stopniu spełnia swoje zadanie:
<?php class filtr { public function zapis( $str, $ile = '' ) // filtrowanie danych przed zapisem { $str = $this->long_words( $str ); if($ile != '') { // opcjonalne skracanie danych } } return $str; } public function odczyt( $str, $typ=1 ) // filtrowanie po odczytaniu danych + ewentualnie bbcode { if($typ = 1) { $str = preg_replace('#\[url=(.*?)\](.*?)\[/url\]#si', '<a href="\\1" target="_blank">\\2</a>', $str); $str = preg_replace('#\[color=(.*?)\](.*?)\[/color\]#si', '<span style="color: \\1">\\2</span>', $str); } return $str; } private function long_words( $str ) // dzielenie długich słów { $str = ''; foreach($tab as $wyraz) { { } else { $str .= $wyraz; } } return $str; } } ?>
Niestety moja klasa nie spełnia wszystkich warunków. Bo co jeśli w tekst przykładowo wygląda przed zapisem tak:
<?php ssssssssssssssssssssssssssssssssssssssss dddddddddddddddddddddddddddd
dddddd asdsssssssssssssssssssssssssssssssssssssssssssssssssssssss sssssssssssssss ?>
Skrypt sobie nie daje z nim rady, jak również z pustymi polami '\n'.