如何使用 php 获取图片说明
how to get image caption using php
我正在使用 PHP 将给定文件夹中的所有图像放入幻灯片。
这在以下代码中工作正常:
<?php
//get all image files with a .jpg extension.
$images = glob("" . $directory . "*.jpg");
$imgs = array();
// create array
foreach($images as $image){ $imgs[] = "$image"; }
/****** Display Images ******/
foreach ($imgs as $img) {
//I would like to get the image title here, to put in the echo below
echo "<div><img src='$img' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
?>
这一切都非常简单,但由于我现在还想添加图片的标题作为说明,因此我需要 extract/get 图片中的此信息。
我想我可以通过函数 exif_read_data
的方式获得它,但我不太确定如何获得标题而不是所有元数据。 . .
在使用 Whosebug 的聪明人的一点帮助下,这是最终的和实用的结果,正如我在下面的回答中看到的那样,由几个答案的点点滴滴组成。
<?php
/*
This script will print the image files in a given folder, along with their image description (title in windows file explorer).
*/
// Set the directory where the files reside
$directory = $GLOBALS['directory'];
//get all image files with a .jpg extension.
$imagenpath = glob("" . $directory . "*.jpg");
$imgs = array();
// create array
foreach($imagenpath as $image){ $imgs[] = "$image"; }
// Print each image file with the ImageDescription (the title/caption) in the ALT field
foreach ($imgs as $img) {
$exif_data = exif_read_data($img, 'IFD0');
$exif_description = "";
if (!empty($exif_data['ImageDescription']))
$exif_description = $exif_data['ImageDescription'];
echo "<div><img src='$img' alt='$exif_description' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
?>
试试这个:-
foreach (glob("*.jpg") as $filename) {
$name = basename($filename, '.jpg');
echo "<div><img src='$filename' title='$name' alt='$name' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
这就是所有可以做的事情,因为大多数图片不支持这个功能,但是,你做错了,因为你得到的错误是因为找不到文件,你得到的错误是当文件找到但不受支持是这样的:
Warning: exif_read_data(file.png): File not supported in
/path/to/file/file.php on line x
这是因为你在
中用单引号引用了变量
$exif_data = exif_read_data($img, 'IFD0');
代码可以少一些字符,这是我的解决方案:
<?php
/*
This script will print the image files in a given folder, along with their image description (title in windows file explorer).
*/
// Set the directory where the files reside
$directory = $GLOBALS['directory'];
//get all image files with a .jpg extension.
$imgs = glob($directory . "*.jpg");
// Print each image file with the ImageDescription (the title/caption) in the ALT field
foreach ($imgs as $img) {
$exif_data = exif_read_data($img, 'IFD0');
if (!empty($exif_data['ImageDescription']))
$exif_description = $exif_data['ImageDescription'];
echo "<div><img src=\"$img\" alt=\"$exif_description\" border=\"0\" width=\"100%\" height=\"100%\"/ /></div>";
}
?>
为了解决这个问题,我基本上使用了Windows文件浏览器,选择图像文件并在文档评论部分输入文本。
然后我按照@RamRaider 上面的建议打印了 $exif_data
并发现该文本最终出现在文件的 ImageDescription
中。
一旦我在@Abdallah Samman 的帮助下确定了我的脚本中的错误,就没有太多了!
谢谢大家...
以下作品很漂亮:
<?php
/*
This script will print the image files in a given folder, along with their image description.
*/
// Set the directory where the files reside
$directory = $GLOBALS['directory'];
//get all image files with a .jpg extension.
$imagenpath = glob("" . $directory . "*.jpg");
$imgs = array();
// create array
foreach($imagenpath as $image){ $imgs[] = "$image"; }
// Print each image file with the ImageDescription (the caption) in the ALT field
foreach ($imgs as $img) {
$exif_data = exif_read_data($img, 'IFD0');
$exif_description = "";
if (!empty($exif_data['ImageDescription']))
$exif_description = $exif_data['ImageDescription'];
echo "<div><img src='$img' alt='$exif_description' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
?>
我正在使用 PHP 将给定文件夹中的所有图像放入幻灯片。 这在以下代码中工作正常:
<?php
//get all image files with a .jpg extension.
$images = glob("" . $directory . "*.jpg");
$imgs = array();
// create array
foreach($images as $image){ $imgs[] = "$image"; }
/****** Display Images ******/
foreach ($imgs as $img) {
//I would like to get the image title here, to put in the echo below
echo "<div><img src='$img' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
?>
这一切都非常简单,但由于我现在还想添加图片的标题作为说明,因此我需要 extract/get 图片中的此信息。
我想我可以通过函数 exif_read_data
的方式获得它,但我不太确定如何获得标题而不是所有元数据。 . .
在使用 Whosebug 的聪明人的一点帮助下,这是最终的和实用的结果,正如我在下面的回答中看到的那样,由几个答案的点点滴滴组成。
<?php
/*
This script will print the image files in a given folder, along with their image description (title in windows file explorer).
*/
// Set the directory where the files reside
$directory = $GLOBALS['directory'];
//get all image files with a .jpg extension.
$imagenpath = glob("" . $directory . "*.jpg");
$imgs = array();
// create array
foreach($imagenpath as $image){ $imgs[] = "$image"; }
// Print each image file with the ImageDescription (the title/caption) in the ALT field
foreach ($imgs as $img) {
$exif_data = exif_read_data($img, 'IFD0');
$exif_description = "";
if (!empty($exif_data['ImageDescription']))
$exif_description = $exif_data['ImageDescription'];
echo "<div><img src='$img' alt='$exif_description' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
?>
试试这个:-
foreach (glob("*.jpg") as $filename) {
$name = basename($filename, '.jpg');
echo "<div><img src='$filename' title='$name' alt='$name' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
这就是所有可以做的事情,因为大多数图片不支持这个功能,但是,你做错了,因为你得到的错误是因为找不到文件,你得到的错误是当文件找到但不受支持是这样的:
Warning: exif_read_data(file.png): File not supported in /path/to/file/file.php on line x
这是因为你在
中用单引号引用了变量 $exif_data = exif_read_data($img, 'IFD0');
代码可以少一些字符,这是我的解决方案:
<?php
/*
This script will print the image files in a given folder, along with their image description (title in windows file explorer).
*/
// Set the directory where the files reside
$directory = $GLOBALS['directory'];
//get all image files with a .jpg extension.
$imgs = glob($directory . "*.jpg");
// Print each image file with the ImageDescription (the title/caption) in the ALT field
foreach ($imgs as $img) {
$exif_data = exif_read_data($img, 'IFD0');
if (!empty($exif_data['ImageDescription']))
$exif_description = $exif_data['ImageDescription'];
echo "<div><img src=\"$img\" alt=\"$exif_description\" border=\"0\" width=\"100%\" height=\"100%\"/ /></div>";
}
?>
为了解决这个问题,我基本上使用了Windows文件浏览器,选择图像文件并在文档评论部分输入文本。
然后我按照@RamRaider 上面的建议打印了 $exif_data
并发现该文本最终出现在文件的 ImageDescription
中。
一旦我在@Abdallah Samman 的帮助下确定了我的脚本中的错误,就没有太多了!
谢谢大家...
以下作品很漂亮:
<?php
/*
This script will print the image files in a given folder, along with their image description.
*/
// Set the directory where the files reside
$directory = $GLOBALS['directory'];
//get all image files with a .jpg extension.
$imagenpath = glob("" . $directory . "*.jpg");
$imgs = array();
// create array
foreach($imagenpath as $image){ $imgs[] = "$image"; }
// Print each image file with the ImageDescription (the caption) in the ALT field
foreach ($imgs as $img) {
$exif_data = exif_read_data($img, 'IFD0');
$exif_description = "";
if (!empty($exif_data['ImageDescription']))
$exif_description = $exif_data['ImageDescription'];
echo "<div><img src='$img' alt='$exif_description' border='0' width=\"100%\" height=\"100%\"/ /></div>";
}
?>