Autor Zpráva
Mufna
Profil
Zdravím Vás. Mám výpis textového řádku z databáze
if ($desc) {
     echo '<p class="realityDesc">'.substr(strip_tags($row["description"]),0,52);
     if (strlen($row["description"])>52) echo ' ...';
}

Problém je, když posledním, tedy 52. znakem, je české písmeno s diakritikou. Pak se na konci zobrazí třeba čtvereček či něco podobného. Z toho, co o tom sám vím, je asi problém v tom, že české znaky s diakritikou se v UTF-8 nezapisují jako jeden znak, ale jako dva znaky (alespoň tak jsem si toho všimnul).
Potřeboval bych nějakou funkci, která zkontroluje 52. (a možná i 51.) znak. Napadá mě udělat ji tak, že pokud 52. či 51. znak nebude A-Z či 0-9 (takhle by mi to v pohodě stačilo), aby byl nahrazen třeba mezerou. Nabízejí se asi funkce rtrim() a preg_replace(), ale nevím, jak zařídit, aby se kontroloval pouze ten poslední znak v řetězci.
karbon
Profil *
V tomto by měly určitě pomoci funkce mb_strlen či mb_substr.
blizz_boz
Profil
presne tak, na utf-8 musis pouzivat multi byte funkcie
Mufna
Profil
Díky za tipy

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: