PHP chdir() 函数



PHP 的 chdir() 函数用于选择脚本执行的目录。或者我们可以说 PHP 脚本自动在安装位置运行。

但有时,我们可能需要处理位于其他位置的文件或文件夹。因此,借助 chdir(),我们可以切换到该位置。这意味着我们可以更改脚本查找文件并执行命令的目录。

语法

以下是 PHP 的 chdir() 函数的语法:

bool chdir ( string $directory )

参数

以下是 chdir() 函数的必需和可选参数:

序号 参数及描述
1

directory(必需)

新的当前目录。

返回值

chdir() 函数在成功时返回 TRUE,失败时返回 FALSE。

PHP 版本

PHP 函数 chdir() 最初是在 PHP 4 核心版本中引入的,并且与 PHP 5、PHP 7、PHP 8 良好兼容。

示例

在此 PHP 代码中,我们将简单地使用 PHP 的 chdir() 函数更改当前工作目录。在 PHP 中,有一个名为 getcwd() 的函数用于获取当前工作目录。

所以我们首先会输出当前工作目录,然后使用 chdir() 函数更改目录。

<?php
   // To know the current working directory
   echo getcwd() . "\n";

   // Using chdir() we can change current working directory
   chdir('html');

   // using the command we can get the updated working directory
   echo getcwd() . "\n";
?> 

输出

这将产生以下结果:

/home/tutorialspoint
/home/tutorialspoint/html

示例

chdir() 函数尝试将当前工作目录更改为指定路径。如果目录更改成功,chdir() 函数将返回 TRUE,因此 if 块内的代码将被执行。

假设 if 条件失败,则它将执行 else 部分,其中将打印消息“无法更改目录”。请参阅以下代码:

<?php
   // Change the current directory to 'new dir'
   if (chdir('home/php/new dir')) {

       echo "Directory changed to 'new dir'.\n";
    
       // List all the files in the new directory 'new dir'
       $files = scandir(getcwd());
       foreach ($files as $file) {
           echo $file . "\n";
       }
   } else {
       echo "Failed to change the directory.";
   }
?> 

输出

这将生成以下结果。其中“new dir”是我们使用 chdir() 更改的目录名,index.txt 和 my.txt 是“new dir”文件夹或目录中的文件:

Directory changed to 'new dir'.
.
..
index.txt
my.txt

示例

我们将使用 chdir() 函数来解决任何问题并更改当前目录。如果目录不存在,我们将使用 if-else 条件处理这种情况。

如果目录存在,则 if 部分中的代码将执行;否则,else 部分中的代码将运行。

<?php
    $ourDir = 'unavailable_directory';

    // we will try to change the directory here in if section
    if (chdir($ourDir)) {
        echo "Directory changed to '$ourDir'. \n";
    } else {
        // if directory is not present in the system then print the message
        echo "Failed to change directory to '$ourDir'. Please check if the directory present.";
    }
?> 

输出

这将产生以下结果:

Failed to change directory to 'unavailable_directory'. Please check if the directory present.

示例

在此示例中,我们将使用 chdir() 函数将目录导航到当前目录的上层和下层位置。

使用 chdir(".") 将路径设置为当前目录后,它会再次打印当前工作目录。使用 chdir("../.."),它会输出当前工作目录并将其更改为父目录的父目录。

<?php
   echo "Initial directory: " . getcwd() . "\n";
   chdir(".");
   echo "After setting path to '.', the current directory is: " . getcwd() . "\n";
   chdir("../");
   echo "After setting path to '../', the current directory is: " . getcwd() . "\n";
   chdir("../../");
   echo "After setting path to '../../', the current directory is: " . getcwd() . "\n";
?> 

输出

这将产生以下结果:

Initial directory: /Applications/XAMPP/xamppfiles/htdocs/mac
After setting path to '.', the current directory is: /Applications/XAMPP/xamppfiles/htdocs/mac
After setting path to '../', the current directory is: /Applications/XAMPP/xamppfiles/htdocs
After setting path to '../../', the current directory is: /Applications/XAMPP

注意

  • 当前目录在目录路径中用单个点 (.) 表示,父目录用双点 (..) 表示。
  • chdir() 函数只是更改目录,它实际上并没有创建新目录。

总结

chdir() 函数是 PHP 中的内置目录函数,用于更改当前目录。因此,您在新的目录中可以执行更多操作。

php_function_reference.htm
广告