我有这个文件夹d:/data/pics
,其中的图片名为1101-a.jpg
、1101-b.jpg
, 1102-a.jpg
、1102-b.jpg
等。图片 a 和 b 始终为相同编号 - 请注意,这 a 和 b 只是后面文本的表示“数字-”部分。但对于每个数字总是有 2 个结果。
我有一个带有“pics”表的 MySQL 数据库。它有“id”、“number”、“title1”和“title2”列。 “号码”列已有 1101、1102、1103 等。
我需要从目录中查找所有图片,从它们的名称中获取数字,在我的 MySQL 表中查找相同的数字并将适当的图片名称插入数据库中。每个号码有两张图片。
现在,我知道如何从目录中获取名称,但我无法将其插入数据库,因为我有两张相同编号的图片,之后需要与 mySQL 中的同一行配对。
$directory = opendir("d:/data/images");
$image_format = array("jpg, jpeg, png");
$image_names = array();
while ($file = readdir ($directory)) {
if(in_array(substr(strtolower($file), strrpos($file,".") + 1),$image_format))
{
array_push($image_names,$file);
}
foreach ($image_names as $row) {
//HERE I NEED THE NUMBER IN PIC'S NAME EXTRACTED AS A VALUE FOR EACH PIC:
$pic_number = "$_GET INTEGER FROM IMAGE_NAMES (or $row)" ;
// this i don't know.
$id = $_GET($row['id']);
$number = $_GET($row['number']);
//NOW HERE I NEED THAT $pic_number FROM image_names ABOVE... and then
$sql = "INSERT INTO images (title1, title2) VALUES ($row) WHERE $number = $pic_number;";
mysql_query($sql);
}
}
closedir($directory);
我写得很简短,没有转义,以尽可能简化问题。
最佳答案
我会做这样的事情:
$images = glob("d:/data/images/*-a.{jpg,png,jpeg}", GLOB_BRACE));
foreach($images as $img){
$path_parts = pathinfo($img);
$img = $path_parts['basename'];
$ext = $path_parts['extension'];
$imge = explode('-',$img);
$pic_number = $imge[0];
$file1 = $pic_number."-a.".$ext;
$file2 = $pic_number."-b.".$ext;
.....
}
关于php - 使用 PHP 从文件夹中获取图片名称 - 然后在其中查找数字,然后分别将每个数字插入 MySQL 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760002/