2014-03-27 74 views
0

我有一个code.php文件类似下面其中在all-photos文件夹生成像-this-is-a-test-21.jpg图像。如何将文件夹名称(../../../)添加到PHP中的图像名称中?

foreach($original_images as $new_image) { 
---> some coding here 
$image_prefix_original = "-this-is-a-test-"; 
$rand = rand(1,100); 
---> some coding here also 
imagejpeg($new_image, $image_prefix_original .$rand.'.jpg'); 
} 

假设我执行code.php文件为http://localhost/tests/photos-test/all-photos/code.php。我的问题是如何生成图像名称,如tests-photos-test-all-photos-this-is-a-test-21.jpg而不是-this-is-a-test-21.jpg

+0

我不明白,你是否要求你的目录分隔符是连字符? –

+0

在大多数安装中,'DIRECTORY_SEPARATOR'通常是'/'。你有没有指定它是'-'? – BenM

+0

您不能在文件名中使用系统目录分隔符。 –

回答

2

如果你所要求的是把目录分隔成文件名,然后如说,你不能有目录分隔符,不管它是什么你的系统上,文件名内。你需要研究文件系统的工作方式,特别是在Unix系统上。一切都是文件,文件是文件,文件夹是文件,打印机是文件,硬盘是文件。如果您将目录分隔符作为文件名的一部分,那将是混乱的。

但...

如果你所要求的是模仿文件名中的目录结构,用连字符代替目录分隔符,那么这是完全有可能,尽量;

$image_name = str_replace(DIRECTORY_SEPARATOR, "-", $image_prefix_original); 

这将需要你的形象与路径,并给你含连字符代替斜杠现在分开了路径元素的新名称。

+0

感谢您的回复,我编辑了这个问题,请你再回顾一下这个问题吗? – Sami

+2

我有,我想你在问所有错误的问题。如果有一种更简单的方法,你试图以一种晦涩的方式来实现某些东西。另外,你不能使用rand生成文件名,因为你很快会遇到冲突。您应该散列图像,并使用它的散列作为文件名,因为碰撞的可能性是大数目。 –

相关问题