(PHP)srcエラーの意味と修正方法

このQ&Aのポイント
  • 下記のコードで実行しようとすると、Parse error: syntax error, unexpected 'src' (T_STRING)が出る。
  • 修正方法を教えてください。
  • コードの中にエラーがあるようです。
回答を見る
  • ベストアンサー

(PHP)srcエラーの意味

●質問の主旨 下記のコードでを実行しようとすると、 print('<img src="'.$img.'" alt="'.$prof[0].'" />'); のところで、 Parse error: syntax error, unexpected 'src' (T_STRING) が出ます。 どこを修正すればよいのでしょうか? ご存知のかたよろしくお願いします。 ●コード <?php foreach($data as $name => $prof) { $img =''; $pos = mb_strpos($name, $_POST['keywd']); if ($pos !== FALSE) { $img = '../images/male.gif'; } else if ($prof[0] === '男') { $img = '../images/female.gif'; } else { $img = '../images/other.gif; } print('<img src="'.$img.'" alt="'.$prof[0].'" />'); print('<dt>'.$name.'</dt>'); print('<dd>性別:'.$prof[0].'</dd>'); print('<dd>誕生日:'.$prof[1].'</dd>'); print('<dd>住所:'.$prof[2].'</dd>'); } } ?>

  • PHP
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.3

$img = '../images/other.gif; よ~く見てみな。「;」の手前に、何かが足りないから。 んで、こういうエラーでハマるのは、「'」を多用するから、が原因。 「'」って、ソースコードの「改行」も無視して、「'」が閉じるまで「とにかく全部文字列」って言う動きをする。 だから、こういうミスをすると、次に「'」が現れるまで、ずっと「変なコンパイル」になって「訳の判らない行でエラー」になる。 ソースコードの中の「'」を、可能な限り「"」に書き換えてごらん。 そうしたら『「"」を閉じ忘れた所でちゃんとエラーが出る』から、今回みたいな罠にはハマらない。 PHPで書くなら、「'」は極力使わない、可能なら一切使わないで書くこと。

dradra33
質問者

お礼

chie65535さま ご回答ありがとうございます。 >ソースコードの中の「'」を、 可能な限り「"」に書き換えてごらん。 書き換えたらあっという間にエラーが消えました。 助かります。今後の参考とさせていただきます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

そのエラー行の2行上 $img = '../images/other.gif; のシングルクォーテーションが閉まっていないのが原因でしょう ちなみに、「}」の数もあってないですね

dradra33
質問者

お礼

yambejpさま ご回答ありがとうございます! $img = '../images/other.gif'; ですね。修正いたしました。 アドバイス助かります。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>$img = '../images/other.gif; 文字列リテラルを定義している引用符が閉じられていない。 前の質問でも同じような『見落とし』をしていたと思います。もう少し注意深く書いて(タイプして)、かつエラーが出たらじっくり見直してください。 http://okwave.jp/qa/q8035799.html 普通は文法エラーで質問するのは恥ずかしいことです。∵ 注意すれば防げる・自分で見つけられることなので・・・

dradra33
質問者

お礼

agunuzさま ご回答ありがとうございます! $img = '../images/other.gif'; ですね。修正いたしました。 アドバイス助かります。 >同じような『見落とし』 そうですね。落ち着いてコードをよく見るようにします。 アドバイス参考にいたします。

関連するQ&A

  • どうしたらいいんでしょか?

    お世話になります。 ディレクトリごとでメニューの表示状態を変えたいと思い、下記のようなプログラムを書いたんですけど、オンマウスの個所が動作しません。原因はどこにあるんでしょうか? 多分、””の使い方がわかっていないと思うのですが・・・。 print "<li><img src='../img/gm_1b.gif' alt='menu1'></li>";の行の src='../img/gm_1b.gif' alt='menu1'の部分のシングルコーテション「'」も本来なら「"」で書きますよね?(htmlでは) なぜシングルコーテションにしないといけないのかわからないし・・・。 どうぞよろしくお願いします。 <ul> <?php //現在のディレクトリを調べる $path = dirname($_SERVER["SCRIPT_NAME"]); //ディレクトリ変数設定 $string1 = "aaa"; if (strstr($path,$string1)) { print "<li><img src='../img/gm_1b.gif' alt='menu1'></li>"; } else { print "<li><a href='#'><img src='../img/gm_1a.gif' onMouseOver='src='../img/gm_1b.gif'' OnMouseOut="src='../img/gm_1a.gif'' alt='menu1'></a></li>"; } ?> </ul>

    • ベストアンサー
    • PHP
  • 表の枠を消して、さらにその枠のスペースを消すには??

    具体的に書くと、 <table bgcolor="#fafafa" border="0" cellpadding="0" cellspacing="0" > <tbody> <tr> <td> <a href="../prof/prof.html" target="content" onmouseover="document.images['img4'].src='profile.gif';showMsg('プロフィール');" onmouseout="document.images['img4'].src='profiles.gif';showMsg('...');" ><img name="img4" src="profiles.gif"></a> </td> </tr> </tbody> ・ ・ ・ ・ </table> として、表に画像を入れてるのですが、表の枠は表示されないものの画像と画像の間にほんのわずかな隙間があります。 それすら完璧に消す方法ってありますか? IE6です。

    • ベストアンサー
    • HTML
  • エラーの意味がどうしてもわからない(PHP)

    ●質問の主旨 Parse error: syntax error, unexpected 'maker_id' (T_STRING) in C:\xampp\htdocs\shop\input_do.php on line 23 というエラーが出ます。なぜエラーが出るのか分かりません。 エラーを表示させないためには、下記のコードをどのように 書き換えればよいでしょうか?ご存知の方、ご教示願います。 ●質問の補足 1.HTMLフォームinput.php(添付画像)に情報を入力。登録ボタンを押す ↓ 2.受付画面(input_do.php)に遷移 という流れを作りたいのですが、上記のエラーが出ます。 もちろんデータベース(mydb3)やテーブル(my_items)は、 すでにphpmyadminに用意しています。 ●開発環境 windows8 xammp1.8.1 ●参考文献 たにぐちまこと 「よくわかるPHPの教科書」P200 ●コード (input.php) <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="style.css" /> <title>商品登録</title> </head> <body> <div id="wrap"> <div id="head"> <h1>トップページ</h1> </div> <div id="content"> <p style="margin-top: 20px"> <?php mysql_connect('localhost', 'root','') or die(mysql_eror()); mysql_select_db('mydb3') or die(mysql_error()); mysql_query('SET NAMES UTF8'); $sql = sprintf('INSERT INTO my_items SET maker_id=%d, item_name="%s", price=%d, keyword="%s", mysql_real_escape_string($_POST['maker_id']), mysql_real_escape_string($_POST['item_name']), mysql_real_escape_string($_POST['price']), mysql_real_escape_string($_POST['keyword']) ); mysql_query($sql) or die(mysql_error()); ?> </p> </div> <p>商品を登録しました</p> <div id="foot"> <p><img src="images/txt_copyright.png" width="136" height="15" alt="(C) H2O Space. MYCOM" /></p> </div> </div> </body> </html> (input_do.php) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="style.css" /> <title>商品登録</title> </head> <body> <div id="wrap"> <div id="head"> <h1>商品登録</h1> </div> <div id="content"> <p>登録する商品の情報を記入してください。</p> <form id="frmInput" name="frmInput" method="post" action="input_do.php"> <dl> <dt> <label for="maker_id">メーカーID</label> </dt> <dd> <input name="maker_id" type="text" id="maker_id" size="10" maxlength="10" /> </dd> <dt> <label for="item_name">商品名</label> </dt> <dd> <input name="item_name" type="text" id="item_name" size="35" maxlength="255" /> </dd> <dt> <label for="price">価格</label> </dt> <dd> <input name="price" type="text" id="price" size="10" maxlength="10" /> 円</dd> <dt> <label for="keyword">キーワード</label> </dt> <dd> <input name="keyword" type="text" id="keyword" size="50" maxlength="255" /> </dd> <input type="submit" value="登録する" /> </form> </div> <div id="foot"> <p><img src="images/txt_copyright.png" width="136" height="15" alt="(C) H2O Space. MYCOM" /></p> </div> </div> </body> </html>

    • ベストアンサー
    • PHP
  • サブウィンドウの画像を入れ替える

    初心者です。よろしくお願いします。 親ウィンドウからテキストリンクでサブウィンドウを開きます。 サブウィンドウには、基本的に2種類の画像があります。 親ウィンドウのテキストリンクは3種類(A、B、C)あり、Aのリンクをクリックしたときには、サブウィンドウの <img src="images/x_01.gif" name="sozai01" alt="" width="469" height="142"> <img src="images/x_02.gif" name="sozai02" alt="" width="469" height="142"> の2つの画像をそれぞれ指定する同じ大きさの画像(images/a_01.gifとimages/a_02.gif)に替えたいのですが、どうしたらいいのかさっぱりわかりません。どなたか教えていただけますでしょうか?

  • firefoxで表示される画像がIEで表示されない

    同じHTML内に <img src="images/9.jpg" alt=""商品画像 /> と <img src="images/title_1.gif" /> がありますが firefoxでは上記の画像を含めすべての画像が表示されますが IEでは <img src="images/title_1.gif" />は表示されるが <img src="images/9.jpg" alt=""商品画像 />は 表示されません。 なぜか判りません。 原因がまったくわかりません。 教えてください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • CSSのdivで何故かボックスセンタリング出来ない

    CSSのdivで何故かボックスセンタリング出来ません。全体を中央に寄せたいと思っています。 質問させていただきます。 まず、全体をdivで囲い、 #contena { margin-right: auto; margin-left: auto; width: 1000px; height: 1000px; } と、記述したのですが、何故かボックスセンタリングになりません。 しかも、ナビゲーションだけ、センタリングされています。 下記に、htmlを記述します。4000文字入るはずですが、これも何故か400文字程の数が入りきらないので、途中まで記載します。詳しい方がいましたら、よろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>名称未設定-1</title> <link rel="stylesheet" type="text/css" href="./index.css" media="all"> <!--[if IE]> <style type="text/css" media="all">.borderitem {border-style: solid;}</style> <![endif]--> </head> <body> <div id="contena"> <form action="#" method="get"> <div id="Div"> </div> <div id="Div2"> </div> <h3 id="見出し_3"> This Month PicUp </h3> <div class="1"> <p class="lastNode">テキスト </p> </div> <div id="Div3"> </div> <h3 id="見出し_32"> This Month PicUp </h3> <div class="2"> <p class="lastNode">テキスト </p> </div> <div class="Txt_メールアドレス"> <p class="lastNode">メールアドレス </p> </div> <input type="text" name="テキストフィールド__mac" id="テキストフィールド__mac" value=""> <input type="submit" id="ボタン__win" value="送信"> <img src="images/index_r2_c2.gif" alt="" id="index_r2_c2"> <table style="display: inline-table;" border="0" cellpadding="0" cellspacing="0" width="600"> <!-- fwtable fwsrc="navibarB.fw.png" fwpage="ページ 1" fwbase="navibar4" fwstyle="Dreamweaver" fwdocid = "68549898" fwnested="0" --> <tr> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="99" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="100" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="1" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="100" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="2" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="101" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="100" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="97" height="1"></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="1" height="1"></td> </tr> <tr> <td colspan="8"><img name="navibar4_r1_c1" src="images/navibar4_r1_c1.gif" width="874" height="223" alt=""></td> <td><img src="images/spacer.gif" alt="" name="undefined_2" width="1" height="157"></td> </tr> <tr> <td rowspan="3"><img name="navibar4_r2_c1" src="images/navibar4_r2_c1.gif" width="99" height="343" alt=""></td> <td><a href="index1.html"><img name="navibar4_r2_c2" src="images/navibar4_r2_c2.gif" width="100" height="28" alt=""></a></td> <td rowspan="3"><img name="navibar4_r2_c3" src="images/navibar4_r2_c3.gif" width="1" height="343" alt=""></td> <td rowspan="2"><a href="navibar.html"><img name="navibar4_r2_c4" src="images/navibar4_r2_c4.gif" width="100" height="30" alt=""></a></td> <td rowspan="3"><img name="navibar4_r2_c5" src="images/navibar4_r2_c5.gif" width="2" height="343" alt=""></td> <td rowspan="2"><a href="navibar1.html"><img name="navibar4_r2_c6" src="images/navibar4_r2_c6.gif" width="101" height="30" alt=""></a></td> <td><a href="javascript:;" onMouseOut="MM_nbGroup('out');" onMouseOver="MM_nbGroup('over','navibar4_r2_c7','images/navibar4_r2_c7_s2.gif','images/navibar4_r2_c7_s4.gif',1);" onClick="MM_nbGroup('down','navbar1','navibar4_r2_c7','images/navibar4_r2_c7_s3.gif',1);"><img name="navibar4_r2_c7" src="images/navibar4_r2_c7.gif" width="100" height="28" alt=""></a></td> <td rowspan="3"><i

  • ・JAVASCRIPTを使って、ホームページを作成しています。

    ・JAVASCRIPTを使って、ホームページを作成しています。 ・ JAVAを使って、ホームページを作成しています。 ・メニューのボタンに、マウスオーバーでボタンの画像を切り替える <!-- loadImage = new Image(); loadImage.src = "profile.gif"; // --> ・と同時に任意の画像を切り替える // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> ・というscriptを同時に使いたいのですが、どちらかだけになってしまったり、どちらも作動しません。 ・一つのボタンに2つのJAVAを使う場合何か特別な入力が必要なのでしょうか? ・それとも、ただ単純にボタンのタグが誤っているのでしょうか? ・どなたかご教授お願い致します。 ・ちなみにタグを全て載せると、 <SCRIPT Language="JavaScript"> <!-- loadImage = new Image(); loadImage.src = "bbs.gif"; // --> </SCRIPT> <script type="text/javascript"> <!-- if (document.images) { // 設定開始(使用する画像を設定してください) // 通常の画像 var img0 = new Image(); img0.src = "topic4.jpg"; // ポイント時の画像1 var img1 = new Image(); img1.src = "topic4.jpg"; // 設定終了 } // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> </script> とボタンのタグが、 <A HREF="../usatop.html"onMouseOver="On('img2')" "if(document.images) "myImage.src='bbs2.gif'" "onMouseOut="Off()""if(document.images) "myImage.src='bbs.gif'"><IMG SRC="bbs.gif" BORDER="0" name="myImage"></A> ・となっております。 ・よろしくお願いします!

  • ・JAVAを使って、ホームページを作成しています。

    ・JAVAを使って、ホームページを作成しています。 ・メニューのボタンに、マウスオーバーでボタンの画像を切り替える <!-- loadImage = new Image(); loadImage.src = "profile.gif"; // --> ・と同時に任意の画像を切り替える // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> ・というscriptを同時に使いたいのですが、どちらかだけになってしまったり、どちらも作動しません。 ・一つのボタンに2つのJAVAを使う場合何か特別な入力が必要なのでしょうか? ・それとも、ただ単純にボタンのタグが誤っているのでしょうか? ・どなたかご教授お願い致します。 ・ちなみにタグを全て載せると、 <SCRIPT Language="JavaScript"> <!-- loadImage = new Image(); loadImage.src = "bbs.gif"; // --> </SCRIPT> <script type="text/javascript"> <!-- if (document.images) { // 設定開始(使用する画像を設定してください) // 通常の画像 var img0 = new Image(); img0.src = "topic4.jpg"; // ポイント時の画像1 var img1 = new Image(); img1.src = "topic4.jpg"; // 設定終了 } // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> </script> とボタンのタグが、 <A HREF="../usatop.html"onMouseOver="On('img2')" "if(document.images) "myImage.src='bbs2.gif'" "onMouseOut="Off()""if(document.images) "myImage.src='bbs.gif'"><IMG SRC="bbs.gif" BORDER="0" name="myImage"></A> ・となっております。 ・よろしくお願いします!

    • ベストアンサー
    • Java
  • スワップイメージ+ページ内移動(NN4.7)

    JavaScriptについて初心者です。どなたか分かる方いましたら、ご教授願います。 【仕様】 ボタンを押下すると、以下の挙動を同時にする。(ボタンは複数) ・同一ページ内の別の画像が切り替わる。 ・同一ページ内の指定した場所へ移動する。 いろいろと調べて以下のようなJavaScriptを作成しました。 <html> <head> <script type="text/javascript"> <!-- function chimg01(){ document.img01.src='images/img01_b.gif' document.location.replace("#a"); } function chimg02(){ document.img01.src='images/img01_c.gif' document.location.replace("#a"); } --> </script> </head> <body> <a name="a"></a> <img src="images/img01_a.gif" alt="あああ" width="400" height="200" name="img01"> --(省略)-- <a href="javascript:chimg01();"><img src="images/btn01.gif" alt="切り替えボタン" name="btn01" border="0"></a> <a href="javascript:chimg02();"><img src="images/btn02.gif" alt="切り替えボタン" name="btn02" border="0"></a> </body> 上記の記述で、IEなどは問題ないのですが、NN4.7の場合、ページをリロードしてしまい、画像の切り替えが効きません。 ブラウザ振り分けで、NN4.7のみ他のjsを読み込むようにした方が良いでしょうか? その場合の記述方法も分かれば、お願いしますm(-_-)m

  • PHPで組む

    先日学校の課題で jqueryを利用してサイコロのプログラムを作りました。 ふたつのサイコロがあり サイコロを振って、出た目を足した数が偶数なら当たりという表記が出て。奇数なら外れという表記が出るものです。 その課題をクリアしたのはいいのですが、 先生にそれをPHPで作れと言われました。恥ずかしながらPHPはほとんど勉強しておらず調べてもよくわかりません。 webのプログラムに詳しい方協力していただけないでしょうか(;_;) 下記が自分の作ったサイコロのプログラムになります。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>サイコロの目をランダムに表示</title> <script> var sai = new Array('sa1.gif', 'sa2.gif', 'sa3.gif', 'sa4.gif', 'sa5.gif', 'sa6.gif'); var r; var s; var msg="dekimasen"; var num; function dice() { r = Math.floor(Math.random()*sai.length); s = Math.floor(Math.random()*sai.length); document.dimg.src = 'images/' + sai[r]; document.dimg1.src = 'images/' + sai[s]; num = (r + s); if( num %2 == 0 ){ msg = "あたり"; } else{ msg = "はずれ"; } document.getElementById("msg1").innerHTML=msg; } </script> </head> <body> <p><img src="images/sa1.gif" name="dimg"> <img src="images/sa1.gif" name="dimg1"></p> <div id="msg1"></div> <p><button onclick="dice()">サイコロを振ってみる</button></p> <script> PHPでやるのは5分で終わるといわれました。。。 ごめんなさい全く分りません。

専門家に質問してみよう