PHP 使用两个变量创建文件夹给出了错误的文件夹名称
PHP creating folder with two variables gives wrong foldername
我正在尝试为上传文件创建一个随机文件夹名称。
文件夹路径应类似于“receivedfiles/$name$date/”。相反,我得到这个:“receivedfiles/.13.06.2016/”。我真的不知道怎么了...
变量 $name 是用户输入的,例如可以是"Simon" 或 "Simon Jensen" 取决于用户想要什么。
$d = date('d.m.y');
$varfoldername = "../receivedfiles/. $name . $d ./";
mkdir($varfoldername , 0777 , true);
$upload_folder = $varfoldername;
多亏了我的大力帮助,我已经从上面的代码中删除了点,请参阅下面的代码,它只用日期命名文件夹。
$name = $_POST['name'];
$d = date('d.m.y');
$varfoldername = "../receivedfiles/$name$d/";
mkdir($varfoldername , 0777 , true);
$upload_folder = $varfoldername;
解决方法: $name 是稍后在脚本中首先指定的。将其移至顶部解决了部分问题。如上所述更改文件夹路径解决了其余问题 - 谢谢大家:)
好吧,多出来的点是因为你没有正确连接。第二行应该是这样的
$varfoldername = "../receivedfiles/" . $name . $d . "/";
或者您可以删除字符串中的点,因为您对文件夹名称值使用了双引号。
。问题是这是来自发送电子邮件表单的代码。电子邮件在下面组成,文件上传在上面。因此,当然该行不知道该变量。
难得的是,你把答案写在了问题里
$varfoldername = "../receivedfiles/$name$date/";
因为它是双引号 php 将 $.. 解释为变量并打印其内容
顺便打印$varfoldername看看输出是什么
首先需要检查$name
变量是否不为空
然后,使用sprintf
创建路径。它提供了更灵活的格式,并帮助您摆脱多余的 spaces/dots/etc。试试这个:
$varfoldername = sprintf('../receivedfiles/%s%s/', $name, $d);
我正在尝试为上传文件创建一个随机文件夹名称。 文件夹路径应类似于“receivedfiles/$name$date/”。相反,我得到这个:“receivedfiles/.13.06.2016/”。我真的不知道怎么了...
变量 $name 是用户输入的,例如可以是"Simon" 或 "Simon Jensen" 取决于用户想要什么。
$d = date('d.m.y');
$varfoldername = "../receivedfiles/. $name . $d ./";
mkdir($varfoldername , 0777 , true);
$upload_folder = $varfoldername;
多亏了我的大力帮助,我已经从上面的代码中删除了点,请参阅下面的代码,它只用日期命名文件夹。
$name = $_POST['name'];
$d = date('d.m.y');
$varfoldername = "../receivedfiles/$name$d/";
mkdir($varfoldername , 0777 , true);
$upload_folder = $varfoldername;
解决方法: $name 是稍后在脚本中首先指定的。将其移至顶部解决了部分问题。如上所述更改文件夹路径解决了其余问题 - 谢谢大家:)
好吧,多出来的点是因为你没有正确连接。第二行应该是这样的
$varfoldername = "../receivedfiles/" . $name . $d . "/";
或者您可以删除字符串中的点,因为您对文件夹名称值使用了双引号。
。问题是这是来自发送电子邮件表单的代码。电子邮件在下面组成,文件上传在上面。因此,当然该行不知道该变量。
难得的是,你把答案写在了问题里
$varfoldername = "../receivedfiles/$name$date/";
因为它是双引号 php 将 $.. 解释为变量并打印其内容
顺便打印$varfoldername看看输出是什么
首先需要检查$name
变量是否不为空
然后,使用sprintf
创建路径。它提供了更灵活的格式,并帮助您摆脱多余的 spaces/dots/etc。试试这个:
$varfoldername = sprintf('../receivedfiles/%s%s/', $name, $d);