如何在我的路径中包含正斜杠?

时间:2017-11-18 11:03:41

标签: php

我使用S3作为我的存储,一切正常,但是当我指定路径时,正斜杠等于文件夹。但是,我希望能够在文件夹或文件名中使用正斜杠。我怎么做?我的代码是:

public static function GetS3UploadPath($school_name, $subject)
{
    $class_name = isset($subject->ofClass->id) ? $subject->ofClass->name : '';
    $class = $class_name ? $class_name . ' - ' : '';
    $subject_folder = $subject->year->start_year.'-'.$subject->year->end_year.' - '.$class.$subject->name;

    return $school_name.'/assignments/answers/'.$subject_folder; // here
}

$subject_folder不能使用正斜杠,因为它会创建一个文件夹,而不是文件夹名称的一部分。

S3 Folders

1 个答案:

答案 0 :(得分:0)

S3实际上没有文件夹..所以你遇到的问题更多是“如何判断斜杠属于文件夹名称还是文件名”,答案是 - 你不能,因为他们'完全一样。如果你真的想要斜杠,那么你必须为文件夹分隔符预留一些其他字符,可能是|或者其他:

school_name|assignments|answers/by_students|1997-1998/...

或者,您可以使用其他一些字符序列对斜杠进行编码,然后在向用户显示时取消编码。例如:

school_name/assignments/answers!!by_students/1997-1998!!...