我目前有一个约250个jpeg的图片页面。图像和我目前有一个网页,我手动将图片分配到页面上的一个部分,但这非常耗时,并且想要创建一个将贯穿的脚本并将图像分配给div。虽然这通常很容易,但我的问题是他们提交图像的方式。在网页上我有一个四边形绘图,四边形的每个部分都需要一个分配给它的图像。图像文件名称各不相同,令我头疼:
文件格式Ex如下。所以每个四边形将有4个图像,下划线之前的第一组数字是pict id,下划线之间的数字是pict的四边形的哪个部分。但是图片的长度各不相同,我不知道该怎么做。任何想法或建议都表示赞赏。
答案 0 :(得分:2)
最好的办法是浏览整个文件夹并相应地过滤图片:
$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>';
}
请记得对文件性质进行更多验证,以确保您只发送图片...也许测试文件扩展名和mime类型......
编辑:添加了一些注释并使用list()为我正在使用的变量提供明确的名称,以便更好地理解。
答案 1 :(得分:0)
<?php
$test = '1234_1_01.jpeg';
list($pict_id, $quad_id) = explode('_', $test);
echo "Pict ID: $pict_id<br />
Quad ID: $quad_id";