[PHP-users 16481]Re: [PHP-users16334]他のディレクトリの変更

misono @ o-misono.com misono @ o-misono.com
2003年 7月 4日 (金) 05:31:57 JST


皆さん
お世話になっております。

やはり勉強不足の中村です。σ(^_^;)

しつこく質問させて頂いて宜しいでしょうか?

この問題ある程度理解できたと思ったのですが、とても簡単なこと(つまり画像を表示さ
せる)ということ・・・。セキュリティのこととかは別問題として兎に角単純に画像を表
示させるということに限定し確認してみたのですが・・・。

<?php
  header("Content-type: image/jpeg");
  readfile("c:/www/1.jpg");
?>

だと画像が表示されます。

<?php 
$full_Path = "c:/www/1.jpg";
//print $full_Path;
  header("Content-type: image/jpeg");
  readfile($full_Path);
?>
これでも画像が表示されますが

<?php 
$full_Path = "c:/www/1.jpg";
print $full_Path;
  header("Content-type: image/jpeg");
  readfile($full_Path);

?>

だと画像が表示されません。
print 文が影響しているのですが・・・何故?

また

<?php 
$dirPath = "c:/My Documents/01gazoFolder/";
$dirDatePath = "2003/200306/20030610/";
$filename = "000019_20030610_S001.JPG";
$full_Path = $dirPath.$dirDatePath.$filename;
  header("Content-type: image/jpeg");
  readfile($full_Path);
?>

とするとこれも

Warning: Cannot modify header information - headers already sent by (output 
started at c:\program files\apache group\apache\htdocs\php\pictureviewtest.php:8)
 in c:\program files\apache group\apache\htdocs\php\pictureviewtest.php 

というエラーメッセージがでて表示されません。

しかし readfile のところを
readfile("c:/My Documents/01gazoFolder/2003/200306/20030610/000019_20030610_S001.
JPG");

と変更すると表示されます。

変数が入ると変化するのでしょうか? 変数が文字列として渡っていない?
変数の特別な仕様がある?
Windows のディレクトリ構造やファイルの構造に注意が必要?
上記のようにディレクトリが My Documents のところのように スペースがあるからおか
しくなる?
("c:/www/1.jpg"を変数にした場合でも同様の現象がでているからそれは考えにくいと思
うのですが・・・)

また$full_Path を print すると
c:/My 
Documents/01gazoFolder/2003/200306/20030610/000019_20030610_S001.JPG");

とMy の後に改行が入ってしまうように print されたりします。

これはWindowsによって起こる現象ですか?
それとも何か変数の使用について注意する点があるのでしょうか?

単純に画像を表示させることもできなければセキュリティ以前の問題です。σ(^_^;)
こんな単純に思えることが何故起こるのでしょう。

しつこく質問して申し訳ありませんが宜しくお願い致します。m(_ _)m

こちらの環境は、 Windwows XP HomeEdition Version 2002 Service Pack 1
Pentium(R) 4 CPU 1.70GHz 512 MB RAM 

Apache/1.3.27 Server at localhost Port 80
PHP Version 4.3.2

中村
mail: misono @ o-misono.com
http://www.o-misono.com/



PHP-users メーリングリストの案内