我在像这样的,这样的名字后面有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/

10-15 11:28