【发布时间】:2020-02-21 02:03:09
【问题描述】:
我是 PHP 新手,所以我希望 while 循环每次的结果都不同,因为我从 CSV 文件中获取数据,所以它不应该是所有数据都相同。
这是我的代码
<div style="margin: 1%">
<?php
//include 'barcode128.php';
require 'vendor/autoload.php';
if (($csvfile = fopen($_FILES['file']['tmp_name'], "r")) !== FALSE) {
while (($csvdata = fgetcsv($csvfile, 1000, ",")) !== FALSE) {
$colcount = count($csvdata);
if($colcount!=5) {
$error = 'Column count incorrect';
} else {
/*$product = $csvdata[0];
$product_id = $csvdata[1];
$rate = $csvdata[2];
$description = $csvdata[3];
$image = $csvdata[4];
$imageData = base64_encode(file_get_contents($image));
echo '<div class="wrapper">';
echo '<div class="a"><img src="data:image;base64,'.$imageData.'" width="50"/>
<div><b>Item: '.$product.'</b></div>
<div><svg id="barcode"><script>JsBarcode("#barcode", "'.$product_id.'",{
format: "code128",width: 1,height: 35,fontOptions: "bold",marginRight:30});</script></svg></div><span><b>Price: '.$rate.' </b></span><div><span><b>Desc: </b>'.$description.'</span></div></p></span>
</div></div>';
*/
$imageData = base64_encode(file_get_contents($csvdata[4]));
echo '<div class="wrapper">';
echo '<div class="a"><img src="data:image;base64,'.$imageData.'" width="50"/>
<div><b>Item: '.$csvdata[0].'</b></div>
<div><svg id="barcode"><script>JsBarcode("#barcode", "'.$csvdata[1].'",{
format: "code128",width: 1,height: 35,fontOptions: "bold",marginRight:30,font:"arial"});</script></svg></div><span><b>Price: '.$csvdata[2].' </b></span><div><span><b>Desc: </b>'.$csvdata[3].'</span></div></p></span>
</div></div>';
}
}
fclose($csvfile);
}
?>
</div>
当前代码的结果: image-result
CSV 文件: image-csv
这就是我想要的结果: enter image description here
那么,我怎样才能使结果可以每次循环并中断它,然后循环 CSV 文件中的下一个数据?谢谢
【问题讨论】:
-
您好,您可以在显示条码的位置添加代码吗?这似乎是问题所在,而不是您当前的代码。
-
@Ice76 我从这个网站得到的代码:lindell.me/JsBarcode 谢谢。
-
您是否在循环内完成了
var_dump($csvdata);以确认这些值实际上是您期望的值? -
@PatrickQ 我把
var_dump($csvdata);放在fclose($csvfile);之前,显示数组没问题,但在fclose($csvfile);之后显示bool(false)。正常吗? -
您对
fclose()的调用在循环之外。您想检查循环 inside 的值,以便每次通过循环查看它们的值。将其放在您的$imageData = base64_encode....或类似名称之前。
标签: php jquery csv while-loop barcode