如何在PHP中添加文件夹名称(./././)到图像名称中


How to add the folder names (../../../) into an image name in PHP?

我有一个类似于下面的code.php文件,在all-photos文件夹中生成-this-is-a-test-21.jpg等图像。

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的图像名称。

如果您要求的是将目录分隔符放入文件名中,那么如前所述,无论您的系统上的目录分隔符是什么,都不能在文件名中使用目录分隔符。您需要了解文件系统是如何工作的,特别是在Unix系统上。一切都是文件,文件是文件,文件夹是文件,打印机是文件,硬盘也是文件。如果您将目录分隔符作为文件名的一部分,那么它将是混乱的。

但是…

如果你想模仿文件名中的目录结构,用连字符替换目录分隔符,那么这是完全可能的,试试;

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

这将获取带有path的图像,并为您提供一个包含路径元素的新名称,现在使用连字符而不是斜杠分隔。