【发布时间】:2018-11-24 02:39:12
【问题描述】:
我正在尝试使用 php 从文件夹中获取所有图像,并将它们与另一个我有 pdf 文件的文件夹链接。两者的名字是一样的。
我的代码如下所示:
$dir_jpg = "../wp-content/uploads/newspaper/jpg/";
$dir_pdf = "../wp-content/uploads/newspaper/pdf/";
$images = glob($dir_jpg."*.*");
$pdfs = glob($dir_pdf."*.*");
$array = array_combine($images, $pdfs);
foreach($array as $image => $pdf){
echo '<ul>';
echo '<li>';
echo '<a href="'.$pdf.'" target="_blank"><img src="'.$image.'" height="100" width="100" /></a>';
echo '</li>';
echo '</ul>';
}
我做了 var_dump 来检查数组,但它是空的。我的代码不起作用的原因可能是什么?
更新 我将文件存储在 wordpress 文件夹系统中,但我没有通过 wordpress 媒体,因此数据库中没有关于它们的记录。我想避免它,并通过ftp帐户上传这些文件并用php代码列出它们。
更新 2 在与@Gabor Klement 聊天时,我们已经解决了这个问题
$wp_root = wp_upload_dir()['baseurl'];
$dir_jpg = $wp_root."/newspaper/jpg/";
$dir_pdf = $wp_root."/newspaper/pdf/";
$images = glob($dir_jpg."*.*");
$pdfs = array();
$imgNum = count($images);
$list = '<ul>';
for ($i = 0; $i < $imgNum; $i++) {
$filename = substr(basename($images[$i]), 0, -4);
$pdfs[$i] = $dir_pdf.$filename.".pdf";
if (file_exists($dir_pdf.$filename.".pdf")) {
$list .= '<li><a href="'.$pdfs[$i].'" target="_blank"><img src="'.$images[$i].'" height="100" width="100" /></a></li>';
}
}
$list .= '</ul>';
echo $list;
但由于某种原因,wordpress 没有显示这些文件。有趣的部分是 <img src="<?php echo $dir_jpg ?>/july2012.jpg" /> 放在 $list 工作之前
更新 3
将路径传递给$images 的唯一方法是wp_upload_dir()['basedir'];,但随后wordpress 创建了一个类似domain.com/home/user/domains/domain/public_html/wp-content/uploads/newspaper/jpg/december2012.jpg 的路径并且找不到图像。
【问题讨论】:
-
使用
*.*抓取所有文件 -
检查您提供的是 glob 的文件系统路径,而不是 Web 可访问路径,例如。
/var/www/domain.local/wp-content/uploads/newspaper/jpg/ -
我已经更新了我的代码,但还是没有成功
-
在这个文件夹中还有所有图片
$dir_pdf?或者您只想获取两个文件夹中的图像? -
@Nawin 在
$dir_pdf我存储我所有的 pdf-s 并在$dir_jpg我存储所有 jpg 以保持更整洁。在这两个文件夹中,文件的名称是相同的,所以我有 ex。$dir_pdf中的 july.pdf 和$dir_jpg中的 july.jpg