没有从csv文件中获取正确的数据

时间:2015-06-02 09:27:03

标签: php html mysql csv

我的csv文件有两个字段图像名称和电子邮件,如下所示

img/img (1), a@gmail.com

我试图在图像弹出窗口(灯箱)上显示此数据作为该图像的标题。我首先尝试通过应用图像组中的第一个图像,如下所示。但它显示的输出如Array Array而不是img/img (1) a@gmail.com

 <ul id="itemContainer">
   <?php
    $file_handle = fopen("imggallery.csv", "r");
    while (!feof($file_handle)) {
    $lines_of_text[] = fgetcsv($file_handle, 1024);
    }
    fclose($file_handle);
    foreach ( $lines_of_text as $line_of_text): ?>

        <li><a href="img/img (1).jpg" data-lightbox="imggallery" data-title="<?php print $lines_of_text[0].$lines_of_text[1];?>"><img src="img/img (1).jpg" alt="image"></a></li>

   <?php endforeach; ?>     

                    <li><a href="img/img (2).jpg" data-lightbox="imggallery" data-title="My caption"><img src="img/img (2).jpg" alt="image"></a></li>
                     <li><a href="img/img (3).jpg" data-lightbox="imggallery"><img src="img/img (3).jpg" alt="image"></a></li>
                    <li><a href="img/img (4).jpg" data-lightbox="imggallery"><img src="img/img (4).jpg" alt="image"></a></li>
                    <li><a href="img/img (5).jpg" data-lightbox="imggallery"><img src="img/img (5).jpg" alt="image"></a></li>
                    <li><a href="img/img (6).jpg" data-lightbox="imggallery"><img src="img/img (6).jpg" alt="image"></a></li>
                    <li><a href="img/img (7).jpg" data-lightbox="imggallery"><img src="img/img (7).jpg" alt="image"></a></li>
                    <li><a href="img/img (8).jpg" data-lightbox="imggallery"><img src="img/img (8).jpg" alt="image"></a></li>
                    <li><a href="img/img (9).jpg" data-lightbox="imggallery"><img src="img/img (9).jpg" alt="image"></a></li>
                    <li><a href="img/img (10).jpg" data-lightbox="imggallery"><img src="img/img (10).jpg" alt="image"></a></li>

 </ul>

任何人都知道应该怎么做?

修改:通过以下代码重复图片:

 <ul id="itemContainer">
 <?php

$file_handle = fopen("imggallery.csv", "r");

while (!feof($file_handle)) {

$lines_of_text[] = fgetcsv($file_handle, 1024);
}
fclose($file_handle);
foreach ( $lines_of_text as $line_of_text): ?>
                <li><a href="img/img (1).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (1).jpg" alt="image"></a></li>
                <li><a href="img/img (2).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (2).jpg" alt="image"></a></li>
                 <li><a href="img/img (3).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (3).jpg" alt="image"></a></li>
                <li><a href="img/img (4).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (4).jpg" alt="image"></a></li>
                <li><a href="img/img (5).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (5).jpg" alt="image"></a></li>
                <li><a href="img/img (6).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (6).jpg" alt="image"></a></li>
                <li><a href="img/img (7).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (7).jpg" alt="image"></a></li>
                <li><a href="img/img (8).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (8).jpg" alt="image"></a></li>
                <li><a href="img/img (9).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (9).jpg" alt="image"></a></li>
                <li><a href="img/img (10).jpg" data-lightbox="imggallery" data-title="<?php print $line_of_text[0].$line_of_text[1];?>"><img src="img/img (10).jpg" alt="image"></a></li>
 <?php endforeach; ?>                  

      </ul>

更新了csv文件,如下所示:

img/img (1),a@gmail.com
img/img (2),b@gmail.com
img/img (3),c@gmail.com
img/img (4),d@gmail.com
img/img (5),e@gmail.com
img/img (6),f@gmail.com
img/img (7),g@gmail.com
img/img (8),h@gmail.com
img/img (9),i@gmail.com
img/img (10),j@gmail.com

2 个答案:

答案 0 :(得分:1)

错误在于:

data-title="<?php print $lines_of_text[0].$lines_of_text[1];?>

使用此:

data-title="<?php print $line_of_text[0].$line_of_text[1];?>

不&#34;行&#34;但&#34; line&#34; 。 &#34; $ lines_of_text&#34;是一个二维数组,包含从csv读取的所有行。你需要逐行遍历它。

更新

您必须在循环中仅输出1个图像:

foreach ( $lines_of_text as $line_of_text): 
      $withoutExt = preg_replace('/.*\\/(.*)\\.[^.\\s]{3,4}$/', '$1', $line_of_text[0]);
?>
       <li>
           <a href="<?php print $line_of_text[0]; ?>" data-lightbox="imggallery" 
           data-title="<?php print $withoutExt.$line_of_text[1];?>">
               <img src="<?php print $line_of_text[0]; ?>" alt="image">
           </a>
        </li>
 <?php endforeach; ?>    

答案 1 :(得分:1)

使用变量名时你犯了一个粗心的错误。

$lines_of_text - 变量数组, $line_of_text - $lines_of_text变量

数组中的单个值

但是在$lines_of_text变量的循环中,您使用相同的数组变量而不是$line_of_text来获取数据标题