Как получить 8 первым и последним из php var (utf-8)?

Как получить 8 первых и последних из php var (utf-8)?

Я пробовал этот код, но не показывал 8 первым и последним.

<?PHP
$file_name= "Μια φορά κι έναν καιρό";

$first_8_char_file_name_display = mb_substr($file_name, 0, 8, "utf-8");
$last_8_char_file_name_display = mb_substr($file_name ,-8, "utf-8");

echo $first_8_char_file_name_display;
echo "<BR>";
echo $last_8_char_file_name_display;
?>

Как я могу это сделать ?


person mongmong seesee    schedule 18.02.2016    source источник
comment
попробуйте использовать mb_substr вместо substr - это безопасно для нескольких байтов.   -  person DerVO    schedule 18.02.2016
comment
Я обновил свой ответ .. посмотри   -  person Firas Rassas    schedule 18.02.2016


Ответы (2)


Попробуйте сделать это:

$file_name= "Μια φορά κι έναν καιρό";
$from = strlen($file_name)/2-6;
$first_8_char_file_name_display = mb_substr($file_name, 0, 8,"utf-8");
$last_8_char_file_name_display = mb_substr($file_name, $from, 8,"utf-8");

echo $from;
echo "<br/>";
echo $first_8_char_file_name_display;
echo "<br/>";
echo $last_8_char_file_name_display;
person Firas Rassas    schedule 18.02.2016

Вместо этого вы можете попробовать использовать mb_substr, так как он поддерживает многобайтовые строки:

$first_8_char_file_name_display = mbsubstr($file_name, 0, 8);
$last_8_char_file_name_display = mbsubstr($file_name, -8);

Для однобайтовых строк (например, US-ASCII, семейство ISO 8859 и т. д.) используйте substr.

Для многобайтовых строк (например, UTF-8, UTF-16 и т. д.) используйте mb_substr

Ссылка на Как получить первые 5 символов из строки.

Надеюсь, это поможет, спасибо!

person Panda    schedule 18.02.2016