如何从PHPVAR(utf-8)中获得8的第一个和最后一个?

如何从PHPVAR(utf-8)中获得8的第一个和最后一个?,php,utf-8,Php,Utf 8,如何从PHPVAR(utf-8)中获得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_

如何从PHPVAR(utf-8)中获得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;
?>

我如何才能做到这一点?

尝试这样做:

$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;
$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$first_8_char_file_name_display; 回声“
”; echo$last_8_char_file_name_display;
您可以尝试改用
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系列等)使用

供(如UTF-8、UTF-16等)使用

引用自


希望这有帮助,谢谢

尝试使用
mb_substr
而不是
substr
——这是多字节安全的。我已经更新了答案。。看一看