Я использую 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>";
}
?>
Это все идет довольно легко, но так как я теперь хотел бы также добавить названия картин, как подписи, мне нужно, чтобы извлечь/получить эту информацию из образа ,
Я думаю, что могу получить что-то по строкам функции exif_read_data
, но я не совсем уверен, как получить название, а не все метаданные. , ,
С небольшой помощью от умных людей, использующих StackOverflow, это окончательный и функциональный результат, как показано в моем ответе ниже, а также и снова, сделанный с битами и кусками из нескольких ответов.
<?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 ($ images as $ image) {$ imgs [] =" $ image "; } 'кажется ненужным. – chris85
Результаты, возвращаемые из 'exif_read_data', возвращаются из памяти в многомерном массиве, а детали в данных exif полностью зависят от того, что их создало, и независимо от того, были ли они вообще отредактированы или изменены. Вам нужно будет проанализировать массив, который будет возвращен, и cherrypick бит, который вы хотите/нуждаетесь – RamRaider
Заголовок изображения находится в файле :) Я могу установить заголовок (комментарий и прочее), просто отредактировав файл jpg в окнах, но я не уверен, что это то, что вы имели в виду.Биты кода, такие как 'foreach ($ images as $ image) {$ imgs [] =" $ image "; } 'не требуется при использовании функции glob() напрямую? Я получил код, а не писал сам - на самом деле не много сделал PHP, а не с 10 лет. Я считаю, что данные заголовка должны быть в этом многомерном массиве где-то, но я не могу найти его ... –