php - php substr() 和货币符号奇怪的输出
问题描述
这是一个有点粗鲁的代码,我正在为这个简单的字符串格式化示例提供这个输出。
foreach (Transaction::where('customer',$id)->cursor() as $ftr) {
$origValue=$ftr->value;
$currency= mb_substr($origValue, 0, 1, "UTF-8");
$value = substr($origValue, 1);
dd($value); //
}
$originalValue 等于例如“$50.00”;
$currency 正确设置为 "$";
$value 应该是 "50.00" 但这是上述 dd() 的结果是:
b"50.00 英镑"
(即使在“mb_substr”操作之后,$originalValue 仍然相同)
我做错了什么?
解决方案
这是问题所在。
您正在尝试使用 substr 返回字符串的一部分,其中您的字符串$origValue
具有特殊字符。所以看看下面的代码
echo substr("£50.00", 1); // will print �50.00
echo mb_substr("£50.00", 1 , 5); // will print 50.00
还请阅读此 https://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload
推荐阅读
- sql - SQL:每个程序的会话数
- html - 个性化的语音气泡
- c++ - 如何将`/lib`下的所有文件夹添加到Visual Studio 2019中的“其他库目录”
- javascript - 将构造函数推送到数组
- python - 为什么 datetime.strptime 将日期输出为序列化?
- javascript - 给定一棵二叉树,判断它是否高度平衡(深度差不小于 1)(leetcode 110)
- fortran - 这个使用 MPI-IO set_view 和 write_all 的示例有什么问题?
- ios - 如何为具有多个目标 iOS 的应用进行应用内购买?
- java - 无法在 k8s env 中使用 Fluentbit 多行解析器
- ios - 当图像不是横向时,图像在裁剪时翻转 - Swift