mad182 Posted December 24, 2008 Report Share Posted December 24, 2008 (edited) Gribēju pajautāt, kāds būtu labākais un efektīvākais veids, kā nogriezt daļu no raksta, ko parādīt kā ievadu, lai tas nebojātu xhtml kodu. Ar Latviešu spec simboliem tiku galā izmantojot kaut kur nospertu funkciju utf8_substr, bet vēl paliek problēma ar, piemēram, vai š, kuriem dažkārt gadās nogriezt tikai pusi, un tā tad nu bojā manu valīdo xhtml'u :/ function utf8_substr($str,$from,$len){ return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); } function textlimit($string, $length, $replacer = '...') { $string = strip_tags($string); if(strlen($string) > $length) return (preg_match('/^(.*)\W.*$/', utf8_substr($string, 0, $length+1), $matches) ? $matches[1] : utf8_substr($string, 0, $length)) . $replacer; return $string; } Edited December 24, 2008 by mad182 Link to comment Share on other sites More sharing options...
bubu Posted December 24, 2008 Report Share Posted December 24, 2008 utf8_substr vietā vai tad nevarēja lietot iebūvēto funkciju mb_substr? Un veic to teksta apcirpšanu pirms html entīšu aizstāšanas, nevis pēc. Tad arī nebūs jāraizējas šādām problēmām. Link to comment Share on other sites More sharing options...
mad182 Posted December 24, 2008 Author Report Share Posted December 24, 2008 Nekāda aizstāšana jau netiek veikta, tāds tas teksts nāk no RTE un glabājas DB. Link to comment Share on other sites More sharing options...
marrtins Posted December 24, 2008 Report Share Posted December 24, 2008 Nu tad nokonvertē atpakaļ un tad cērp! Link to comment Share on other sites More sharing options...
mad182 Posted December 24, 2008 Author Report Share Posted December 24, 2008 Tās entitijas tak ir vajadzīgas... Laikam pats atradu risinājumu, manuāļa komentāros ir f-ja kas dala tekstu atstarpju vietās, tas šoreiz derēs ideāli. http://lv.php.net/manual/en/function.substr.php#84103 Link to comment Share on other sites More sharing options...
bubu Posted December 24, 2008 Report Share Posted December 24, 2008 mad182: pēc tam jau vari atkal atpakaļ pielikt tās entītes (pēc marrtins teiktām darbībām). Link to comment Share on other sites More sharing options...
Recommended Posts