This is a little bit rude code and I am having this output for this simple string formatting sample.
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 is equal for example to “$50.00”;
$currency is setted correctly to “$”;
$value should be “50.00” but this is the result of the above dd() is:
b”£50.00″
($originalValue is still the same even after the “mb_substr” operation)
what I have made wrong?
Advertisement
Answer
Here is the problem.
You are trying to return the part of string using substr where your string $origValue
has a special characters. So look at the code below
echo substr("£50.00", 1); // will print �50.00 echo mb_substr("£50.00", 1 , 5); // will print 50.00
Also read through this https://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload