• ベストアンサー

Cドライブにある画像を表示したい

環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 いつも質問に答えてくれてありがとうございます。 「C:\フォルダ」の中にある「aaa.jpg」と言う画像を表示させるために 以下のようにしてみました。 $pic = "C:\フォルダ\aaa.jpg"; print('<img src=$pic alt='pic' width=25 height=25>'); 「Parse error: syntax error, unexpected T_STRING in」 というエラーなってしまいました。 apacheの設定が「C:\フォルダ」を読みに行けない設定になっているので エラーになってしまうような気がするのですが どのようにすればいいのか分かりません。 ご教示して頂けたら幸いです。

  • wee
  • お礼率19% (62/318)
  • PHP
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

そして自己突っ込み print('<img src=$pic alt=\'pic\' width=25 height=25>'); これだと文字列の中に$picと言う変数の中身を入れることが出来ません。 '(シングルクオート)の中身は「PHPパースされない」という仕様なので、$picと言う変数の中身が文字列に反映されません。 なので // ダブルクオートでくくり{ }を使って変換 print("<img src={$pic} alt='pic' width=25 height=25>"); // 文字列結合、一番高速かつスマート。推奨 print("<img src=" . $pic . " alt='pic' width=25 height=25>"); // 文字列結合、上記と差異はない print('<img src=' . $pic . ' alt="pic" width=25 height=25>'); とすれば意図した動きになるのではないかと思います。

wee
質問者

お礼

wp_さん、こんにちは。 いつもいつもありがとうございます。 お陰様で解決しましたし、 大変勉強にもなりました。

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

いくら「1台でサーバ&クライアント」でも公開用ディレクトリ以外の場所をhtmlタグに記述すべきではありません。公開できない場所に置いてあるファイルに対しては   <img src="img.php?name=aaa.jpg" alt="pic" width=25 height=25> などとして、img.phpが「決められた場所(ここだとC:\フォルダ\)」のaaa.jpgをブラウザに返すようにすべきです。 #もちろんheader("Content-type: image/jpeg");が必要です。

  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

syntax errorとは「文法エラー」です。 セミコロンが足りなかったり、括弧が閉じられてなかったりすると出るエラーです。 // 仕事のソースで出すと一番恥ずかしいエラーでもあります。^^; 出来るだけ正しく書こうとするなら以下の感じでしょうか。 $pic = "C:\フォルダ\aaa.jpg"; print('<img src=$pic alt='pic' width=25 height=25>'); ↓ $pic = "C:\\フォルダ\\aaa.jpg"; print('<img src=$pic alt=\'pic\' width=25 height=25>'); おそらく二行目のalt='のところでシングルクオートが閉じてしまいエラーになっているのでしょう。 またダブルクオートの中の\はエスケープさせなければなりません。 エスケープするには\を頭につけるのが慣例なので\\とします。 >apacheの設定が「C:\フォルダ」を読みに行けない設定になっているので apacheにそういう機能はなかったと思いますよ。 あるとすればOSの機能(windowsであればユーザ権限、linuxであればpermission)です。

関連するQ&A

  • Postgresqlが接続できない

    環境はxp、apache2、php5、Postgresql8.2です。 ただ今PHPとPostgresqlの勉強をしています。 PHP5で作成したプログラムでPostgresqlへアクセスするのですが,全く応答がありません。 ブラウザで表示後、ソースを見ると Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files\Apache Group\Apache2\htdocs\sample\aa.php on line 10 というエラーが表示されます。 aa.phpの10行目は $d_base = pg_connect("user=postgres password=0000 dbname=test"); と、データベースに接続しています。 どこがおかしいのか ご教示して頂けたら幸いです。

  • mozilla で画像が見れません。

    HP制作の初心者です。 基本的な質問かと思いますがよろしくお願いします。 FFFTPを使って、画像をアップしたいのですが、IEでは見れるのに、Mozillaでは見れません。 どうしてでしょうか。 <td width="25%"><img src="C:\Program Files\citclejpg/aaa.jpg" width="150" height="120"></td> <td width="25%"><img src="C:\Program Files\citclejpg/aaa2.jpg" width="150" height="120"></td> <td width="25%"><img src="C:\Program Files\citclejpg/aaa3.jpg" width="150" height="120"></td> <td width="25%"><img src="C:\Program Files\citclejpg/aaa4.gif" width="150" height="120"></td> といった感じです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • phpファイルを開けない(ブラウザにエラー表示)

    こんにちは! PHPを勉強中なのですが、あるphpファイルをブラウザで開こうとすると 以下のように表示が出てしまい、ファイルが開けません。 ------------エラー文------------------------------------------- Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\hello.php on line 128 --------------------------------------------------------------- これは何が原因のエラーなのでしょうか? 有識者の方いらっしゃいましたらご指導宜しくお願い致します。

    • ベストアンサー
    • PHP
  • unexpected T_REQUIRE とは?

    <? php require('Smarty.class.php'); require('Logging.class.php'); …・ と書いてあるlogging_gui.phpファイルをブラウザで開こうとすると、 Parse error: syntax error, unexpected T_REQUIRE in C:\Program Files\Apache Group\Apache2\**********\logging_gui.php on line 3 というエラーが出ます。 PHPマニュアルでT_REQUIREを調べてみましたが、意味が分かりません。 テンプレートはtemplates_cにコンパイルされています。 何が不具合であると言っているのでしょうか? Logging.class.phpの中身に間違いがあるということでしょうか? エラーをなくすには何をチェックすればよいのでしょうか? 超初歩的、かつ漠然とした質問かも知れませんが、よろしくお願いします。

    • 締切済み
    • PHP
  • Parse errorなんですが・・・

    Parse error: syntax error, unexpected '&' in C:\Program Files\Apache Group\Apache2\htdocs\php10\dbtest1.php on line 2 というエラーがでます。 ホスト名、ユーザー名、パスワードはあっていると思うんですが・・・ というかホスト名とはなんのことでしょうか?? ユーザー名、パスワードはデータベースでの設定ですよね? <?php &con=mysql_connect("localhost","sample","password") or die("接続できません。"); print"接続に成功しました。"; mysql_close(&con); ?> 本当に初心者ですみません ご教授、お願いいたします。

    • ベストアンサー
    • PHP
  • コンパイルエラー???

    どなたか分かる方いらっしゃいましたら ご助言宜しくお願いします。 PHPソース自体には何も問題は無いのですが、たまにParse errorが出てしまいます。 「Parse error: syntax error, unexpected T_STRING, expecting ')' 」 エラーが出ても、何度かリロードを繰り返すと正しく表示されます。 なぜこのような現象がおきてしまうのか、調べても分からない状態です。 どなたか解決策をご存知の方宜しくお願いします。 動作環境 CentOS3.8 apache2.2.4 php4.4.8 Mysql5.0.27 文字コードはeuc-jpで統一

    • 締切済み
    • PHP
  • PHPのParse errorについて質問

    PHPのParse errorについて質問ですが、 昨日より、Apacheサーバーなどの設定を変更していないにも関わらず、急に以下の様なエラーが頻繁に 表示されます。 原因は、なんでしょうか? どうやって修正すればいいのでしょうか? Parse error: parse error, unexpected T_ELSE in ディレクトリ名/index.php on line 43

    • ベストアンサー
    • PHP
  • smartyについて教えてください。

    smartyについて教えてください。 エラーメッセージ Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\smarty\hello\index.php on line 8 の意味を教えていただけませんでしょうか? よろしくお願いいたします。

  • phpbb3.07pl-1にて、次のエラーが発生しました。

    phpbb3.07pl-1にて、次のエラーが発生しました。 Parse error: syntax error, unexpected '}' in C:\www\users\poonet\public_html\php-bin\phpbb\cache\tpl_prosilver_overall_footer.html.php on line 14 です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpと<?xml version="1.0" encoding="utf-8"?>

    phpファイルの頭に<?xml version="1.0" encoding="utf-8"?>を入れると Parse error: syntax error, unexpected T_STRING in ・・・ というエラーが出ます。 なぜでしょう?

    • ベストアンサー
    • PHP