如何从php var(utf-8)获得8个第一个和最后一个?

时间:2016-02-18 13:30:30

标签: php utf-8

如何从php var(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;
?>

我该怎么做?

2 个答案:

答案 0 :(得分:1)

尝试这样做:

$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;

答案 1 :(得分:1)

您可以尝试使用mb_substr,因为它支持多字节字符串:

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

对于single-byte strings(例如US-ASCII,ISO 8859系列等),请使用substr

multi-byte strings(例如UTF-8,UTF-16等)使用mb_substr

引自How to get first 5 characters from string

希望这有帮助,谢谢!