将else添加到rename()函数

时间:2017-09-02 21:30:14

标签: php

我正在编写一个简单的rename表单,用于重命名文件夹名称。它工作正常,但如果文件不存在,PHP会给我一个错误。

<form> 
    <input type="text"  value="folder name you want to rename">
    <input type="submit">
</form>

这是我的PHP代码:

<?php
session_start();
$_SESSION['name'] = $_POST['name'];

rename("../folders/".$_POST['name']."","../renamed/new-name");
?>

代码工作正常,但我想添加一个if / else语句,因为当我运行不存在的文件夹的脚本时,我收到此错误。

  

不存在

我想删除错误,只输出“不存在”。

3 个答案:

答案 0 :(得分:2)

不确定您是否能够在没有任何name属性的情况下发送表单数据,或者在没有$_POST时如何使用method获取数据表单中包含GET属性。默认情况下,它将使用if(file_exists("../folders/".$_POST['name'])){ rename("../folders/".$_POST['name'],"../renamed/new-name"); }else{ echo "directory doesn't exist"; } 方法发送表单数据。我相信你会照顾所有这些事情。

现在已经说过了,首先检查是否存在特定目录,然后相应地重命名它或只打印一条消息目录不存在如果用户试图重命名的目录不存在。

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return images.count
}

以下是参考: http://php.net/manual/en/function.file-exists.php

  

file_exists - 检查文件或目录是否存在

答案 1 :(得分:1)

您总是可以使用简单的if语句来检查rename()是否有效,因为它返回一个布尔值(truefalse)值。详细了解PHP manual

所以你可以写下这些内容:

if(rename("../folders/".$_POST['name']."","../renamed/new-name"))
{
    echo "Folder renamed";
    // more code...
}
else
{
    echo "Folder does not exist.";
    // more code...
}

答案 2 :(得分:0)

if (isset($_POST["name"]) && !empty($_POST["name"]) && file_exists("../folders/".$_POST['name'])) {
$_SESSION['name'] = $_POST['name'];
rename("../folders/".$_POST['name']."","../renamed/new-name")
}
else
{
echo "Folder does not exist.";
//ToDo
}

另一种不同的简单算法。

如果你需要使rename()更具功能性和复杂性,我更喜欢这种算法。并且它同时验证表单文本框。

例如,如果您希望在服务器端生成新名称,我会选择此解决方案。