我正在尝试使用php加载文件夹中的所有图像,然后构建一个表并从json文件中提取文本并将其放在每个图像旁边。目标是让json看起来像这样。
{
"Car1": {
"year":"2012"
},
"Car2": {
"year":"2011"
},
"Car3": {
"year":"2009",
"milage":"10,204"
}
}
Car1,Car2名称最终也会匹配文件夹中实际图像的名称。所以我想抓住json文件中的图像和正确的部分,并构建一个列出它们的表。到目前为止,我有下面的PHP,但我不确定如何把它们放在一起,正如你在下面看到的,它现在只是分开。关于如何结合下面的php来实现我描述的结果的任何建议?
6/1编辑(使用以下答案的新代码)。这是在我希望所有这些输出的地方的页面上,并且&字母变量从另一页面上的表单传递。但是当该表单提交并且此页面触发时,没有任何反应。我做错了吗?
$letter = $_POST['letter'];
//Call the path of the cars for the chosen letter
$path = "/images/PartsCars/".$letter."/";
$temp_files = scandir($path);
//Call the path for the json file in the chosen letter subfolder
$data = json_decode($string, true);
//Sort the pictures in this folder alphabetically
natsort($temp_files);
echo '<table cellspacing="5" cellpadding="5">';
//Loop through all pictures and json elements to build out the page
foreach($temp_files as $file)
{
if($file != "." && $file != ".." && $file != "Thumbs.db" && $file != basename(__FILE__))
{
echo '<tr>';
echo '<td><a href="'.$url.$file.'" title="'.$file.'"><img src="'.$url.$file.'" alt="'.$file.'" style="width:300px;height:200px;"/></a></td>';
$info = pathinfo($file);
$file_name = basename($file,'.'.$info['extension']);
echo '<td>'.print_r($data['$file_name']).'</td>';
echo '</tr>';
}
}
echo '</table>';
答案 0 :(得分:1)
我使用php json_decode以方便使用并使用print_r进行演示,您可以使用foreach循环将其正确打印出来
$path = "./images/PartsCars/A/";
$temp_files = scandir($path);
$string = file_get_contents("/images/PartsCars/A/sample.json");
data = json_decode($string, true);
natsort($temp_files);
echo "<table>";
foreach($temp_files as $file)
{
if($file != "." && $file != ".." && $file != "Thumbs.db" && $file != basename(__FILE__))
{
echo '<tr>';
echo '<td><a href="'.$url.$file.'" title="'.$file.'"><img src="'.$url.$file.'" alt="" /></a></td>';
$info = pathinfo($file);
$file_name = basename($file,'.'.$info['extension']);
echo '<td>'.print_r(data['$file_name']).'</td>';
echo '</tr>'
}
}
echo '</table>';