我正在尝试从while循环中获取图像并在句点(。)处将它们拆分..然后将图像的名称更改为ImageName + -resized。但我似乎无法弄清楚如何做到这一点。任何帮助将不胜感激!
总之,我有这个:image.jpg我想创建这个图像-resized.jpg:这是我的代码:
<?php
$f = $_GET['f'];
$h = $_GET['h'];
$gp = $_GET['gp'];
//Create folder path
$path = "Fotos/".$f."/".$h."/".$gp."/";
//Get pictures from database
$getfolders = mysql_query("SELECT FolderName, Files FROM Files WHERE FolderDate = '$f' AND FolderHour = '$h' AND FolderName = '$gp'") or die(mysql_error());
//List pictures from database
while($row = mysql_fetch_array($getfolders)){
$img = $row['Files'];
//Seperate image at period(.)
$image = explode('.', $img);
//Get image name ----------------Here is where I need help!!
for($i = 0; $i < sizeof($image); $i++)
{
$imag = $image[$i];
}
?>
<div class="picture" id="pic"><img src="<?php echo $path; echo $imag ?>" alt="picture" /><?php echo $img?></div>
<?php
}
?>
答案 0 :(得分:1)
嗯,最简单的解决方案是:
$image = explode('.', $img);
$extension = array_pop($image);
$resizedFileName = implode('.', $image) . "-resized.{$extension}";
但是这个解决方案确实假设只有简单的扩展:
image.jpg => image-resized.jpg // ok
image.tar.gz => image.tar-resized.gz // not so ok
但如果只有简单的扩展,那么这个解决方案就足够了。
更好的解决方案是使用SplFileInfo
:
$fi = new SplFileInfo($image);
$resizedFileName = $fi->getBasename("." . $fi->getExtension()) . "-resized." . $fi->getExtension();
从PHP 5.3.6开始, SplFileInfo::getExtensions()
可用