Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将照片填充到html div的php脚本_Php - Fatal编程技术网

将照片填充到html div的php脚本

将照片填充到html div的php脚本,php,Php,我目前有一个大约250 jpeg的图片页面。Images和我目前有一个网页,我手动将图片分配给页面上的某个部分,但是这非常耗时,并且希望创建一个脚本,将图像运行并分配给div。虽然这通常很容易,但我的问题是他们归档图像的方式。在网页上,我有一个四边形绘图,四边形的每个部分都需要分配一个图像。图像文件名各不相同,这让我头疼: 文件格式如下所示。因此,每个四元组将有4个图像,下划线前的第一组数字是pict id,下划线之间的数字是pict指向四元组的哪个部分。但是pict id的长度各不相同,我不知

我目前有一个大约250 jpeg的图片页面。Images和我目前有一个网页,我手动将图片分配给页面上的某个部分,但是这非常耗时,并且希望创建一个脚本,将图像运行并分配给div。虽然这通常很容易,但我的问题是他们归档图像的方式。在网页上,我有一个四边形绘图,四边形的每个部分都需要分配一个图像。图像文件名各不相同,这让我头疼:

文件格式如下所示。因此,每个四元组将有4个图像,下划线前的第一组数字是pict id,下划线之间的数字是pict指向四元组的哪个部分。但是pict id的长度各不相同,我不知道该怎么做。如有任何想法或建议,我们将不胜感激

  • 1234_1_01.jpeg
  • 1234_2_03.jpeg
  • 1234_3_02.jpeg
  • 1234_4_01.jpeg
  • 345422_1_01.jpeg
  • 345422_2_02.jpeg等

您最好的选择是浏览整个文件夹并相应地过滤图片,如下所示:

$myPicFolder = "path/to/pictures/";
$thePics = array();
if (is_dir($myPicFolder)) {
    if ($dh = opendir($myPicFolder)) {
        while (($file = readdir($dh)) !== false)) {
            if(!is_dir($myPicFolder . $file){
                list($intersectionID,$section,$imgID) = explode('_'.$file);//Seperates the parts of the name for easier access
                //check if the ID is already a key in $thePics
                if(!array_key_exists($intersectionID,$thePics)){
                    //Add the new ID if it does not exist with an empty array.
                    $thePics[$intersectionID]=array();
                }
                if(!array_key_exists($section,$thePics[$intersectionID])){
                    //Add the new ID if it does not exist with an empty array.
                    $thePics[$intersectionID][$section]=array();
                }
                // Add a new part to the ID since each picture ID has 4 pictures.
                $thePics[$intersectionID][$section][] = $file;
            }
        }
        closedir($dh);
    }
}


//$thePics will then look like:
// array('1234'=>array(
//        '1'=>'1234_1_01.jpeg',
//        '2'=>'1234_2_03.jpeg',
//        '3'=>'1234_3_02.jpeg',
//        '4'=>'1234_4_01.jpeg'),
//    '345422'=>array(
//        '1'=>'345422_1_01.jpeg',
//        '2'=>'345422_2_02.jpeg')
//    );

//Cycle through the pictures...
foreach($thePics as $pictureID=>$quad){
    echo '<div class="intersection">';
    foreach($quad as $quadPart=>$pictures){
        echo '<div class=”s1”>';
        foreach($pictures as $pictureSRC){
            echo '<img src="'.$pictureSRC.'"/>';
        }
        echo '</div>';
    }
    echo '</div>';
}
$myPicFolder=“path/to/pictures/”;
$thePics=array();
if(is_dir($myPicFolder)){
如果($dh=opendir($myPicFolder)){
while(($file=readdir($dh))!==false)){
如果(!is_dir($myPicFolder.$file){
list($intersectionID,$section,$imgID)=分解('.'$file);//分隔名称的各个部分以便于访问
//检查ID是否已经是$thePics中的密钥
如果(!array_key_存在($intersectionID,$thePics)){
//如果不存在空数组,请添加新ID。
$thePics[$intersectionID]=array();
}
如果(!array_key_)存在($section,$thePics[$intersectionID])){
//如果不存在空数组,请添加新ID。
$thePics[$intersectionID][$section]=array();
}
//将新部件添加到ID,因为每个图片ID有4张图片。
$thePics[$intersectionID][$section][]=$file;
}
}
closedir($dh);
}
}
//$thePics将看起来像:
//数组('1234'=>数组(
//'1'=>'1234_1_01.jpeg',
//'2'=>'1234_2_03.jpeg',
//'3'=>'1234_3_02.jpeg',
//“4”=>“1234_4_01.jpeg”),
//“345422”=>数组(
//'1'=>'345422_1_01.jpeg',
//'2'=>'345422_2_02.jpeg')
//    );
//循环浏览图片。。。
foreach($pictureID=>$quad的价格){
回声';
foreach($quad作为$quadPart=>$pictures){
回声';
foreach($pictures为$pictureSRC){
回声';
}
回声';
}
回声';
}
请记住对文件的性质做更多的验证,以确保您只发送图片…可能测试文件扩展名和mime类型


编辑:添加了一些注释,并使用list()为我使用的变量提供了明确的名称,以便更好地理解。

您如何知道显示了哪些图像?是某个文件夹中的所有图像吗?您是否可以发布一篇带有示例HTML的文章,其中显示了其中一个“四边形绘图”?
preg\u match('/^(\d+)\u(\ d+)\ud+).jpg$/)
用于快速/肮脏地捕获文件名中的3个数字集。不幸的是,我无法共享实际的四元组,但对于一个心理图像,只要想想一个步枪瞄准镜,当你看它时,你会看到一个圆圈和一个带有4个部分的十字。所有照片都在一个文件夹中。下面是我开始的一个小示例代码。这只是调用了t图像文件夹。如果(!is_dir($myPictFolder.$file)我一直收到一个错误。很抱歉,我也是新手。请您解释一下这部分代码的实际用途。如果(!array_key_存在($nameParts[0],$thePics))$thePics[$nameParts[0]]=array();$thePics[$nameParts[0]][$nameParts[1],我将感谢您的帮助=$file;错误是什么?如果它说$myPictFolder未定义,那是因为您放了一个“t”在pict…但是复制/粘贴不应该引发错误…至于第二个问题,我在答案中添加了解释。好的,现在如果你调整图片的路径,HTML标记适合你的图片,它将100%工作。感谢你的帮助和评论,但我仍然得到这个错误:解析错误:语法错误,意外'{在C:\wamp\www\co\subco\photo\u code\test.php的第19行,这是指代码的这一部分:if(!is\u dir($myPicFolder.$file){
<?php

$test = '1234_1_01.jpeg';
list($pict_id, $quad_id) = explode('_', $test);
echo "Pict ID: $pict_id<br />
      Quad ID: $quad_id";