[英]PHP How to increment only 4 rows of CSV file
我正在嘗試顯示CSV文件中的一些數據,並且只需要顯示前四行。 每行都在'ul'
列表中。 現在一切都顯示了,所以所有ul都顯示了。 我試圖添加另一個“ while”循環,但是一切都壞了。
我敢肯定,這對於習慣於用php編寫代碼的人來說很容易。 我現在正在學習php,因此我將仔細研究好答案,以了解我需要做的更改。 這是代碼:
<?php
$row = 1;
if (($handle = fopen($this->getBaseUrl()."csvfile/csv_test.csv", "r")) !== FALSE) {
echo '<ul>';
$count = 0;
while (($data = fgetcsv($handle, 1000, ",",'"')) !== FALSE) {
$name=$data[0];
$bonus=$data[1];
$start=$data[2];
$end=$data[3];
$brand=strtok($name, " - ");
$count++;
echo
'<li><ul><li><img width="90" height="40" src="'
.$this->getSkinUrl('images/logos/').strtolower($brand).'.jpg" /></li>';
echo '<li>'.$name.'</li>';
echo '<li class="bonus"><strong>'.$bonus.'</strong></li>';
echo '<li><span class="green">Start: '.$start.'</span></li>';
echo '<li><span class="red"><strong>end: '.$end.'</strong></span></li>';
echo '<li class="pdf"><a target="_blank" href="'
.$pdf.'" title=""><img src="'.$this->getSkinUrl('images/icon-pdf.png')
.'"/><br/>PDF</a></li></ul></li>';
?>
<?php
}
echo '</ul>';
fclose($handle);
}
else {
echo "NOPE.";
}
?>
while (($data = fgetcsv($handle, 1000, ",",'"')) !== FALSE)
等於
while(true)
如果您向條件中添加更多元素,將要檢查
while(true && true) // so loop carries on
所以如果發現
while(true && false) // equates to false, so loop will stop
它停止了。
因此,如果您有:
while (
($data = fgetcsv($handle, 1000, ",",'"')) !== false // true
&&
$count < 5 // true
){}
很抱歉,但是無法測試我剛才寫的內容,但是原則上,這是停止4次迭代的一種方法。
還有很多其他東西,比這更具可讀性。
但我只想回答您的直接問題。
我發現使用轉儲,foreach()更容易閱讀,例如,因此您可以知道正在發生的事情,而不用猜測應該發生的事情:
$data = fgetcsv($handle, 1000, ",",'"');
// var_dump($data) // uncomment this to see what is happening
$count = 1;
foreach($data as $row){
if($count === 5) break;
// var_dump($row); // uncomment this to see what is happening
echo $row[0];
$count++;
// var_dump($count); // uncomment this to see what is happening
}
同樣,未經測試,但僅說明了實現同一目標的另一種方法。
做一個步驟,證明它,然后繼續下一步。
如果它不起作用,請取消注釋,然后將問題追回去,這就是您必須思考和采取的行動。
高溫超導
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.