web-dev-qa-db-ja.com

PHPルートフォルダ

rename('/images/old_name.jpg', '/images/new_name.jpg');

このコードはファイルが見つかりませんを与えます。

ファイルが呼び出されるスクリプトは、/source/フォルダー内に配置されます。

ファイルはhttp://site.com/images/old_name.jpgから開くことができます

これらのファイルをルートから取得する方法は?

8
James

rename はファイルシステム関数であり、ファイルシステムパスが必要です。しかし、URIパスを使用しているようです。

$_SERVER['DOCUMENT_ROOT']を使用して、ドキュメントルートへのパスを先頭に追加できます。

rename($_SERVER['DOCUMENT_ROOT'].'/images/old_name.jpg', $_SERVER['DOCUMENT_ROOT'].'/images/new_name.jpg');

または、柔軟性を高めるために、現在のファイルへのパスで dirname を使用します__FILE__

rename(dirname(__FILE__).'/images/old_name.jpg', dirname(__FILE__).'/images/new_name.jpg');

または、相対パスを使用します。 / scriptフォルダーにいるとき、..は1つのディレクトリレベルを上に移動します。

rename('../images/old_name.jpg', '../images/new_name.jpg');
35
Gumbo

In PHPルート(/)は、「webroot」ではなくファイルシステムのルートです。phpファイルが/source/ディレクトリにあり、画像が/source/images/その後、これは機能します:

rename('images/old_name.jpg', 'images/new_name.jpg');
6
adamse