爆炸不会从数据库中的值中删除逗号
Explode doesn't remove comma from value in database
我在数据库字段中有值,名称后有 ,
,如 file.pdf,
。我试图用 explode 删除它,但是当我尝试从数据库中的这一行读取和生成 pdf 时出现错误 FPDF error: Unable to find pointer to xref table
... 如果我从 phpmyadmin 中手动删除逗号,一切都会完美无缺。这是我尝试爆的源码片段...
foreach($files as $file) {
$sql = "SELECT file FROM documents WHERE id = :id";
$result = $pdo->prepare($sql);
$result->bindParam(":id", $file);
$result->execute();
$resArray = $result->fetchAll();
foreach ( $resArray as $res )
{
$items = explode(',', $res["file"]);
foreach ($items as $item) {
$pdf->addPDF($fileFolder.$item);
}
}
}
这将删除最后一个“,”。
$item = rtrim($res["file"], ",");
$pdf->addPDF($fileFolder.$item);
此处的文档:
http://php.net/manual/es/function.rtrim.php
而不是:
$items = explode(',', $res["file"]);
此代码不会删除逗号,而是使用逗号作为分隔符将字符串拆分为多个部分。所以你实际上得到了两个字符串:一个带有 file.pdf
和一个空字符串(因为逗号后面的部分什么都没有),并且你正在使用 foreach
迭代这两个字符串,所以你调用 addPDF
两次,一次是空字符串(这可能是导致错误的原因)。
你需要的是:
foreach ( $resArray as $res )
{
$pdf->addPDF($fileFolder . rtrim($res["file"], ","));
}
rtrim
用于明确删除尾随字符(此处为逗号)。
使用 rtrim($res["file"], ",") 删除最后一个逗号
我在数据库字段中有值,名称后有 ,
,如 file.pdf,
。我试图用 explode 删除它,但是当我尝试从数据库中的这一行读取和生成 pdf 时出现错误 FPDF error: Unable to find pointer to xref table
... 如果我从 phpmyadmin 中手动删除逗号,一切都会完美无缺。这是我尝试爆的源码片段...
foreach($files as $file) {
$sql = "SELECT file FROM documents WHERE id = :id";
$result = $pdo->prepare($sql);
$result->bindParam(":id", $file);
$result->execute();
$resArray = $result->fetchAll();
foreach ( $resArray as $res )
{
$items = explode(',', $res["file"]);
foreach ($items as $item) {
$pdf->addPDF($fileFolder.$item);
}
}
}
这将删除最后一个“,”。
$item = rtrim($res["file"], ",");
$pdf->addPDF($fileFolder.$item);
此处的文档: http://php.net/manual/es/function.rtrim.php
而不是:
$items = explode(',', $res["file"]);
此代码不会删除逗号,而是使用逗号作为分隔符将字符串拆分为多个部分。所以你实际上得到了两个字符串:一个带有 file.pdf
和一个空字符串(因为逗号后面的部分什么都没有),并且你正在使用 foreach
迭代这两个字符串,所以你调用 addPDF
两次,一次是空字符串(这可能是导致错误的原因)。
你需要的是:
foreach ( $resArray as $res )
{
$pdf->addPDF($fileFolder . rtrim($res["file"], ","));
}
rtrim
用于明确删除尾随字符(此处为逗号)。
使用 rtrim($res["file"], ",") 删除最后一个逗号