gpt4 book ai didi

php - 如何解析具有精确字符串长度的字符串?

转载 作者:行者123 更新时间:2023-11-29 02:20:10 24 4
gpt4 key购买 nike

我正在解析一个如下所示的文本文件:

2.cat=262FU
2.dog=FSK4A

这是代码:

if (false !== ($pos = strpos($line, '='))) {
$prop=array();
$prop[trim(substr($line, 0, $pos))] = trim(substr($line, $pos + 1));
$lineContArray = explode("=", $line);
$identArray = explode(".", $lineContArray[0]);

$ident = $identArray[0];
$type = $identArray[1];

$value = $lineContArray[1];

$found = 0;
for ($i=0; $i<count($properties); $i++) {
if ($properties[$i]['number'] == $ident) {
$properties[$i][$type]= $value;
$found=1;
break;
}
}

if ($found == 0) {
if (!empty($type)) {
$properties[] = array('number' => $ident, $type => $value);
} else {
$properties[] = array($ident => $value);
}
}
}

我想将解析后的内容插入到mysql数据库中,查看cat的字符串长度是否为5

$sql = "INSERT INTO files (cat, dog) values(?,?) ";
$q = $pdo->prepare($sql);

foreach($properties as $row) {

var_dump ($row['cat']);
if (strlen($row['cat']) == 5){

$q->execute(array($row['cat'], $row['dog'];
}

} else {
echo "The length of cat is not 5";
}
}

我收到以下错误:

string(6) "262FU " 
The length of cat is not 5

但是在我的文本文件中,262FU 之后没有空格。那么是什么原因呢?

最佳答案

你从 $properties 得到 $row

您使用键值对数组设置 $properties 中的每个元素,其中键 $type 您使用 $value

后者来自

$value = $lineContArray[1];

再往上走

$lineContArray = explode("=", $line);

$line 很可能以空格或换行符结尾。

所以我会修剪 $value

$value = trim($lineContArray[1]);

就像你在第三行设置 $prop 时所做的那样

关于php - 如何解析具有精确字符串长度的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33298217/

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