【发布时间】:2015-07-25 10:51:00
【问题描述】:
为了解释我的意思,我有 1 个包含图像的目录。我有另一个包含有关图像信息的文本文件。我想要一个数组,每个图像与另一个包含其数据的数组相匹配。
试图解决这个问题我的脑袋开始爆炸,而我对 PHP(尤其是数组)的了解非常少。如果有人可以帮助解决我到目前为止所遇到的问题,或许可以帮助解释正在发生的事情(或将我指向一个解释的网站),我将非常感激。
到目前为止,这是我的代码:
<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
ini_set('display_errors',1);
function loadImages()
{
$images=array();
if ($handle = opendir($_SERVER['DOCUMENT_ROOT'].'/img/gallery')) {
$imageData = loadImageData();
$count = 0;
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
if((end(explode(".", $entry)) == "jpg") || (end(explode(".", $entry)) == "jpeg") || (end(explode(".", $entry)) == "JPG") || (end(explode(".", $entry)) == "gif") || (end(explode(".", $entry)) == "png")) {
$images[$imagedata[$count]] = $entry;
$count += 1;
}
}
}
}
var_dump($images);
closedir($handle);
return $images;
}
function loadImageData()
{
$imageData=array();
if ($handle = opendir($_SERVER['DOCUMENT_ROOT'].'/img/gallery/data/')) {
$count = 0;
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
if(end(explode(".", $entry)) == "txt") {
$path = $_SERVER['DOCUMENT_ROOT'].'/img/gallery/data/';
$file = fopen($path.$entry, "r") or die("Something went wrong gathering photo information. I suggest you contact the server admin about this.");
$fileData = array();
$line = 0;
while(! feof($file)) {
$lineData = fgets($file);
$lineData = str_replace("\n", "", $lineData);
$lineData = str_replace("\r", "", $lineData);
$fileData[$line] = $lineData;
$line++;
}
fclose($file);
$imageData[$count] = $fileData;
$count += 1;
}
}
}
}
closedir($handle);
return $imageData;
}
?>
【问题讨论】:
-
文件名是否相关 - 即 img1.jpg 和 img1.txt?
-
@RamRaider 是的,他们有,忘记提了。
标签: php arrays file directory readdir