所以我已经杀了一整天,试图做一些能够让实际知道怎么写php不到2分钟的人。令人沮丧,但我从实践中学习并试图解决问题。
我觉得自己没有得到这个,但是8小时和数数(是的,我知道跛脚)就足够了。
有人可以告诉我这个等式有什么问题......
$dir = '../folder';
$images_array = glob($dir.'*.jpg');
$values['options'] = array( '<img src="$images_array"/>');
这可能很明显,但我只需要将mysite.com/folder中的图片加载到$ values [&#39; options&#39;]数组中。
如果我只是简单地说明单个图像的路径,那么就会显示图像(显然是因为它不依赖于任何其他图像。)
感谢。
@hellcode
对于评论&#39;中的混乱感到抱歉。低于你的回复。不幸的是我无法让这个工作?也许我需要提供更多背景信息。
文件夹中的图像将用作表单中的复选框项。这是我的原始代码(不工作):
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.'"/>';
}
答案 1 :(得分:0)
好吧,一个问题可能是glob()
函数使用当前目录,除非你使用chdir()
函数,否则它可以是任何东西。
肯定存在问题的一点是,您使用glob()
的返回值$images_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();