-2

これは単純なはずですが、機能しません

  $photo = "../members/".$vid.".jpg";

  if (file_exists ($photo))
       echo "<img id='memberpic' src = '$photo'/>";

この場合、画像は表示されません

ただし、if文を省略すると...

 echo "<img id='memberpic' src = '$photo'/>";

ファイルが存在する場合は画像が正しく表示されますが、存在しない場合は空のフレームが表示されます。その空き枠をなくしたい。

私は何が欠けていますか?

4

3 に答える 3

3

file_exists() に相対パスを使用しています。代わりに完全なサーバー パスを使用してみてください。

例えば

$photo = "/var/www/html/members/".$vid.".jpg";

ただし、明らかにサーバーのフルパスに置き換えてください:)

于 2013-01-23T16:39:51.280 に答える
0

できるだけ頻繁に絶対パスを使用してください。相対パスは、PHP がそれらを計算するのに苦労します (パフォーマンスの観点から)。

また、絶対パスを使用したくない場合は、次のように相対パスを使用できます。

$_SERVER['DOCUMENT_ROOT'] = '<root_dir_of_your_project>';  
file_exists($_SERVER['DOCUMENT_ROOT'].'/path/to/file.php');  
于 2013-01-23T16:42:30.103 に答える
0

ファイルとディレクトリ パスを操作する際には、いくつかの点に注意する必要があります。基本的には、相対 (php-script が実行されるディレクトリからのパス) よりも絶対 (Web サーバー上のフル パス) でファイルにアクセスすることをお勧めします。これは、ファイルが存在するかどうかを確認するのに役立ちます。スクリプトのアクティブ ディレクトリは、PHP マジック定数DIR (PHP バージョン >= 5.3) または dirname( FILE ) で取得できます。

追跡しなければならないもう 1 つのことは、Web サーバーのドキュメント ルートです。(あなたの場合) 画像ファイルは次のようにアドレス指定されます: document-root: /var/www/example.com/img/photo.png url: http://example.com/img/photo.png

「親ディレクトリ」を使用することもできますが..難しいので使用はお勧めしません。

于 2013-01-23T16:57:46.613 に答える