检查字符串是否以欧元/英镑符号开头

我正在尝试检查字符串在PHP中是否以“€”或“£”开头。

以下是代码

    $text = "€123";

    if($text[0] == "€"){
        echo "true";
    }
    else{
        echo "false";
    }

    //output false

如果只检查一个字符,就可以正常工作

    $symbol = "€";

    if($symbol == "€"){
        echo "true";
    }
    else{
        echo "false";
    }
    // output true

我也尝试在浏览器上打印字符串。

$text = "€123";
echo $text; //display euro symbol correctly
echo $text[0] //get a question mark 

我尝试使用substr(),但是发生了同样的问题。

乔纳森

诸如“€”或“£”之类的字符是多字节字符。有一篇很棒的文章,您可以在这里阅读根据PHP文档,PHP字符串是字节数组。因此,使用数组括号访问或修改字符串不是多字节安全的,并且仅应使用单字节编码的字符串(例如ISO-8859-1)来完成。

另外,请确保您的文件使用UTF-8编码:您可以使用文本编辑器(例如NotePad ++)进行转换。

如果我将PHP简化为此,它可以工作,关键是使用mb_substr:

<?php
  header ('Content-type: text/html; charset=utf-8');
  $text = "€123";
  echo mb_substr($text,0,1,'UTF-8');
?>

最后,在您的head标签中添加UTF-8元标签是一个好主意:

<meta charset="utf-8"> 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章