PHP 7.4.8 Released!

chdir

(PHP 4, PHP 5, PHP 7)

chdirディレクトリを変更する

説明

chdir ( string $directory ) : bool

PHP のカレントディレクトリを directory に変更します。

パラメータ

directory

新しいカレントディレクトリ

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

エラー / 例外

失敗した場合は E_WARNING レベルのエラーが発生します。

例1 chdir() の例

<?php

// カレントディレクトリ
echo getcwd() . "\n";

chdir('public_html');

// カレントディレクトリ
echo getcwd() . "\n";

?>

上の例の出力は、 たとえば以下のようになります。

/home/vincent
/home/vincent/public_html

注意

注意: セーフモード が有効の場合、PHP は、 操作を行うディレクトリが、実行するスクリプトと同じ UID (所有者)を有しているか どうかを確認します。

警告

PHP インタプリタが ZTS (Zend Thread Safety) を有効にしてビルドされている場合、 chdir() 関数を使って行った現在のディレクトリの変更はオペレーティングシステムには見えません。 全てのPHPのビルトイン関数は、現在のディレクトリの変更を尊重しますが、 FFI を使って呼び出された外部ライブラリはそうではありません。 あなたの PHP で ZTS が有効かどうかを調べるには、php -i コマンドを使うか、 ビルトイン定数PHP_ZTS を確認してください。

参考

  • getcwd() - カレントのワーキングディレクトリを取得する

add a note add a note

User Contributed Notes 2 notes

up
-4
php dot duke at qik dot nl
11 years ago
When changing dir's under windows environments:

<?php
$path
="c:\temp"';
chdir($path);
/* getcwd() gives you back "c:\temp" */

$path="c:\temp\"'
;
chdir($path);
/* getcwd() gives you back "c:\temp\" */
?>

to work around this inconsistency
doing a chdir('.') after the chdir always gives back "c:\temp"
up
-17
herwin at snt dot utwente dot nl
13 years ago
When using PHP safe mode and trying to change to a dir that is not accessible due to the safe mode restrictions, the function simply fails without generating any kind of error message.

(Tested in PHP 4.3.10-16, Debian Sarge default)
To Top