我的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
答案 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
来获取数据标题