PHP function substr() error
use this function, It worked for me
function substr_unicode($str, $s, $l = null) {
return join("", array_slice(
preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $s, $l));
}
Credits: http://php.net/manual/en/function.mb-substr.php#107698
Use mb_substr
instead, it is able to deal with multiple encodings, not only single-byte strings as substr
:
$articleText = mb_substr($articleText,0,500,'UTF-8');
substr
is counting using bytes, and not characters.
greek probably means you are using some multi-byte encoding, like UTF-8 -- and counting per bytes is not quite good for those.
Maybe using mb_substr
could help, here : the mb_*
functions have been created specifically for multi-byte encodings.
Looks like you're slicing a unicode character in half there. Use mb_substr
instead for unicode-safe string slicing.