我在像这样的,
这样的名字后面有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);
}
}
}
最佳答案
此代码不会删除逗号,而是使用逗号作为分隔符将字符串拆分为多个部分。因此,您实际上得到了两个字符串:一个为file.pdf
,另一个为空(因为逗号后面的部分为空),并且您正在使用foreach
遍历这两个字符串,因此您两次调用addPDF
,一次是一个空字符串(这可能是导致错误的原因)。
您需要的是:
foreach ( $resArray as $res )
{
$pdf->addPDF($fileFolder . rtrim($res["file"], ","));
}
rtrim
在此处用于显式删除尾随字符(在此处为逗号)。关于php - 爆炸不会从数据库的值中删除逗号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37027882/