我只是偶然发现了这段代码:
/**
* @param $string
* @return bool
*/
protected static function isRubel($string)
{
$lString = strtolower($string);
/**
* @hint: The characters looking like "p" as in Petra are in fact instances of cyrillic "Er"!
*/
return strpos($string, 'руб') !== false || strpos($string, 'р') !== false || strpos($lString, 'rub') !== false;
}
提交人提供一个提示非常好,该字符不是p
而是unicode符号р
;正如我原以为它是p
。
这段代码可以用不同的方式编写,以便更清楚地表明字符是unicode符号吗?
从某种意义上说,编写unicode表示而不实际编写unicode字符。
我知道我可以定义一个字符串常量CRYLLIC_ER = р
,但我正在寻找更通用的解决方案。
答案 0 :(得分:2)
从PHP 7开始,您可以使用以下语法:
$str = "\u{####}";
在此之前,您可以使用UTF-8字节值使其显而易见:
$str = "\x##\x##";
但我个人会做作者所做的事情,只需在评论中写下来。