【问题标题】:How to get 8 first and last from php var (utf-8)?如何从php var(utf-8)中获取第一个和最后一个8?
【发布时间】:2016-05-30 16:47:21
【问题描述】:

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

我该怎么做?

【问题讨论】:

  • 尝试使用mb_substr 而不是substr - 它是多字节安全的。
  • 我已经更新了我的答案.. 看看

标签: php utf-8


【解决方案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;

【讨论】:

    【解决方案2】:

    您可以尝试改用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

    希望对你有帮助,谢谢!

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 2012-11-10
      • 2020-05-28
      • 1970-01-01
      • 2019-03-09
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多