php - 用php将图像从目录加载到 array 中

  显示原文与译文双语对照的内容
0 0

killed killed killed killed killed something something knows knows php php php php 。 ,但我学习并试图找出答案。

我会觉得失败了,但是 8hrs 和计数( 我知道 lame ) 是足够的。

谁能告诉我这个方程式出了什么问题。


$dir = '../folder';

$images_array = glob($dir.'*.jpg');

$values['options'] = array( '<img src="$images_array"/>');

很明显,但我需要的是 mysite.com/folder 中的图像加载到 $values['options'] array 中。

如果我简单地说明了一个图像的路径,那么显示图像( 显然是因为它不依赖它的他任何东西) 。

谢谢。

@hellcode

抱歉,你响应的'评论'中出现了混乱。 不幸的是我不能让这个工作? 也许我需要提供更多的上下文。

文件夹中的图像将用作表单中的复选框项。 这是我最初的代码( 不工作):


add_filter('frm_setup_new_fields_vars', 'frm_set_checked', 20, 2);
function frm_set_checked($values, $field){
 if($field->id == 187){
 $dir = '../folder';
 $images_array = glob($dir.'*.jpg');
 $values['options'] = array( '<img src="$images_array"/>');
 $values['use_key'] = true;
 }
 return $values;
}

我添加了你的代码如下:


add_filter('frm_setup_new_fields_vars', 'frm_set_checked', 20, 2);
function frm_set_checked($values, $field){
 if($field->id == 187){
 $dir = '../folder';
 $images_array = glob($dir.'*.jpg');
 $values['options'] = array();
 foreach($images_array as $image) {
 $values['options'][] = '<img src="'.$image.'"/>';
 }
 $values['use_key'] = true;
 }
 return $values;
}

但不幸的是,它并没有提取文件:(

时间: 原作者:

0 0

尝试以下方法:


$dir = '../folder';
$images_array = glob($dir.'*.jpg');
$values['options'] = array();
foreach($images_array as $image) {
 $values['options'][] = '<img src="'.$image.'"/>';
}

原作者:
0 0

嗯,一个问题可以能是 glob() 函数使用当前目录,除非使用 chdir() 函数。

一个绝对是问题的问题是,你正在使用 glob() 返回值,$images_array,作为字符串。 因为它是一个不能工作的array 。

下面是应该能工作的东西。


//Allowed image formats (also known as a"whitelist")
$allowedFormats = ['jpg', 'jpeg', 'gif', 'png'];

//Array for holding any found images
$foundImages = [];

//Get the real path from the relative path
$path = realpath('../folder');
if ($path === false) {
 die('The path does not exist!');
}
//Open a folder handle
$folder = dir($path);

//Read what is in the folder
while (($item = $folder->read())!== false) {

//.. is the parent folder,. is the current folder
 if ($item === '..' or $item === '.') {
 continue;
 }
//Find the last dot in the filename
//If it was not found then not image file
 $lastDot = strrpos($item, '.');
 if ($lastDot === false) {
 continue;
 }
//Get the filetype and make sure it is
//an allowed format
 $filetype = substr($item, $lastDot);
 if (! in_array($filetype, $allowedFormats)) {
 continue;
 }
//Okay, looks like an image!
 $foundImages[] = $item;
}
//Close the folder handle
$folder->close();

原作者:
...