gpt4 book ai didi

php - 相同字符串的不同长度

转载 作者:行者123 更新时间:2023-12-01 00:12:04 25 4
gpt4 key购买 nike

我得到了同一个字符串的两个不同的计数值

 $val1 = $data->sheets[0]['cells'][5][1];//thise value is from excel sheet 
$val2 = $obj->number; // this is the value from database

var_dump(trim($val1)) , var_dump(trim($val2))

string(19) "US5922335A" , string(10) "US5922335A"

第一个值是从 excel 表 (xls) 中获取的,第二个值是在执行 Select 查询后从 Mysql 表中获取的,我无法进行比较,因为两者的长度不同。

if($val1==$va2)
{
echo "Found it ";
}

我怎样才能使它具有相同的长度以便我可以比较它。

最佳答案

这不是您问题的直接答案,但让我们首先找出 string(19) "US5922335A" 背后的真正含义。请尝试

foreach(array($val1,$val2) as $v ) {
for($i=0; $i<strlen($v); $i++) {
printf('%02x ', ord($v[$i]));
}
echo "<br />\n";
}

if($val1==$val2) {
echo "Found it ";
}

并添加应该是这样的输出

55 53 35 39 32 32 33 33 35 41 <br />
55 53 35 39 32 32 33 33 35 41 <br />

你的问题。


编辑:您的数据似乎是小端 UCS-2/UTF-16 编码的。

i am getting as
string(22) "EP2153814A1" string(10) "US5922335A"45 00 50 00 32 00 31 00 35 00 33 00 38 00 31 00 34 00 41 00 31 0055 53 35 39 32 32 33 33 35 41

由于该字符串值的数据源是 Excel 工作表,最简单的解决方案可能是使用 mb_convert_encoding()更改编码。

$val1 = $data->sheets[0]['cells'][5][1];
$val1 = mb_convert_encoding($val1, 'ISO-8859-1', 'UTF-16LE');

关于php - 相同字符串的不同长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14229806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com