當前位置: 首頁> 最新文章列表> chdir() 函數怎麼用來更改PHP 中的當前工作目錄?完整示例解讀

chdir() 函數怎麼用來更改PHP 中的當前工作目錄?完整示例解讀

gitbox 2025-10-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// PHP 腳本前置無關部分</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"這是一些前置輸出內容,與文章內容無關。\n"</span></span><span>;
</span><span><span class="hljs-variable">$foo</span></span><span> = </span><span><span class="hljs-number">123</span></span><span>;
</span><span><span class="hljs-variable">$bar</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span>];
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * chdir() 函數怎麼用來更改 PHP 中的當前工作目錄?完整示例解讀
 * 
 * 在 PHP 中,chdir() 函數用於更改當前工作目錄(Current Working Directory,CWD)。
 * 當前工作目錄是 PHP 腳本操作文件時默認的路徑,如果不指定絕對路徑,
 * 文件操作會基於當前工作目錄進行。
 *
 * 函數原型:
 * bool chdir(string $directory)
 *
 * 參數:
 * $directory - 目標目錄的路徑,可以是相對路徑也可以是絕對路徑。
 *
 * 返回值:
 * 成功返回 true,失敗返回 false。
 *
 * 注意:
 * 1. 如果指定的目錄不存在,會返回 false。
 * 2. 如果 PHP 沒有權限訪問該目錄,也會失敗。
 */</span>

</span><span><span class="hljs-comment">// 示例 1:切換到指定目錄</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"示例 1:切換到指定目錄\n"</span></span><span>;
</span><span><span class="hljs-variable">$targetDir</span></span><span> = </span><span><span class="hljs-string">"/tmp"</span></span><span>;  </span><span><span class="hljs-comment">// 你係統上存在的目錄</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">chdir</span></span><span>(</span><span><span class="hljs-variable">$targetDir</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"當前工作目錄已更改為: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">getcwd</span></span><span>() . </span><span><span class="hljs-string">"\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"目錄切換失敗,請檢查路徑是否存在或權限。\n"</span></span><span>;
}

</span><span><span class="hljs-comment">// 示例 2:使用相對路徑</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n示例 2:使用相對路徑\n"</span></span><span>;
</span><span><span class="hljs-variable">$currentDir</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getcwd</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"當前目錄: <span class="hljs-subst">$currentDir</span></span></span><span>\n";

</span><span><span class="hljs-variable">$relativePath</span></span><span> = </span><span><span class="hljs-string">"../"</span></span><span>; </span><span><span class="hljs-comment">// 上級目錄</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">chdir</span></span><span>(</span><span><span class="hljs-variable">$relativePath</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"切换到上級目錄后: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">getcwd</span></span><span>() . </span><span><span class="hljs-string">"\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"相對路徑切換失敗。\n"</span></span><span>;
}

</span><span><span class="hljs-comment">// 示例 3:結合文件操作</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n示例 3:結合文件操作\n"</span></span><span>;
</span><span><span class="hljs-variable">$newDir</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">"/testdir"</span></span><span>; </span><span><span class="hljs-comment">// 假設存在一個 testdir</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$newDir</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">mkdir</span></span><span>(</span><span><span class="hljs-variable">$newDir</span></span><span>, </span><span><span class="hljs-number">0777</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
}

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">chdir</span></span><span>(</span><span><span class="hljs-variable">$newDir</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-string">"example.txt"</span></span><span>, </span><span><span class="hljs-string">"這是一個示例文件,存放在新工作目錄。\n"</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文件已創建在: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">getcwd</span></span><span>() . </span><span><span class="hljs-string">"/example.txt\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"無法切換到新目錄創建文件。\n"</span></span><span>;
}

</span><span><span class="hljs-comment">// 總結</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n總結:\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"1. chdir() 用於修改 PHP 腳本的當前工作目錄。\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"2. 使用 getcwd() 可以獲取當前工作目錄。\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"3. 在進行文件讀寫時,可以結合 chdir() 使用相對路徑,方便管理文件結構。\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>