1

誰かが私を助けてくれるのではないかと思います。

作成中の画像ギャラリースクリプトで使用しているxmlファイルのファイルパスを取得しようとしています。

私のフォルダ構造は次のとおりです。

website / development / UploadedFiles /'username' folder /'location' folder / file.xml

私はこれをまとめて、私に道を教えてもらいました:

<?php
chdir('var/www/');
echo realpath('./././file.xml');
?> 

しかし、次のエラーが発生します。

警告:chdir()[function.chdir]:2行目の/homepages/2/d333603417/htdocs/development/real.phpにそのようなファイルまたはディレクトリ(errno 2)はありません

私はここで初心者の間違いを犯していると確信していますが、少なくとも試してみたかったのです。誰かがこれで大騒ぎする可能性があるのではないかと思ったので、どこが間違っているのか教えてください。

どうもありがとう

4

2 に答える 2

5

これは、Unixパスには2つのタイプがあるためです。

絶対パス:(/var/www/常にで始まる/

相対パス:(var/www/あなたがいる場所に対して。/最初はありません)

chdirを/var/www/実行すると、に到達し/var/www/ます。

あなたがあなたにchdirするvar/www/ならchdirto<directory_where_you_are>/var/www/

また、あなたは間違いを犯してい./././ます。

./-現在のディレクトリを意味します。を使用./././すると、現在のディレクトリに残ります。

ディレクトリツリーで上に移動する場合は、../(親ディレクトリを意味します)を使用します。

于 2012-04-13T11:16:06.797 に答える
0

dirname(__FILE__).'/path/to/file'phpファイルを基準にしたファイルの絶対パスを取得する場合は、相対パスでchdirを使用するよりもはるかに予測可能であるため、通常は次のような操作を行う方が簡単です。デバッグのためにエコーすることもできます。

したがって、あなたの場合、次のようなものが必要になる可能性があります。

$file = dirname(__FILE__)."/UploadedFiles/$username/$location/file.xml";

ディレクトリを上向きにトラバースする必要がある場合は、複数のdirnameを使用して行います。

$file = dirname(dirname(__FILE__))."/UploadedFiles/$username/$location/file.xml";
于 2012-04-13T11:20:08.737 に答える