バグ?無知?Another HTML lintの採点で不明な実体参照エラーが発生
- バグか無知か?Another HTML lint(htmllint.cgi 1.17 / htmllint.pm 3.17)を使用したところ、不明な実体参照エラーが生じました。
- 具体的には、`&c`という不明な実体参照が4行目で検出されました。
- このエラーがバグなのか、それとも私の知識不足なのか、教えていただきたいです。
- ベストアンサー
これはバグか僕の無知か。(Another HTML lintの採点)
1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2. <html> 3. <head> 4. <meta http-equiv="Refresh" content="0;URL=mypage.php3?n=12345&c="> 5. <title>教えてgoo-リダイレクト</title> 6. </head> 7. <body> 8. 9. <p> 10. 11. 自動で移動しない場合は 12. <a href="mypage.php3?n=12345&c=">マイページ</a> 13. アクセスしてみてください。 14. 15. </p> 16. 17. </body> 18. </html> をAnother HTML lint(htmllint.cgi 1.17 / htmllint.pm 3.17)にかけた所、 3: line 4: `&c` は不明な実体参照です。 → 解説 114 3: line 4: `&c` は不明な実体参照です。 → 解説 114 (ほかは省略) というエラーが帰ってきました。 これは、バグでしょうか? それとも私の知識不足でしょうか? ----- http://oshiete1.goo.ne.jp/kotaeru.php3?q=1013847 の#3への補足も読んでいただけると幸いです
- himajin2005_RC4
- お礼率29% (15/51)
- HTML
- 回答数1
- ありがとう数8
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
URLの '&' を '&' とするのが正しいはずです。 The W3C Markup Validation Service http://validator.w3.org/ で確認したところ、やはり、 '&' が正しいとされました。 もっとも、エンコーディングを指定しなければチェックしてくれませんが。 3.の次に次行を追加して確認。 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
- 参考URL:
- http://validator.w3.org/
関連するQ&A
- PHPの中にHTMLを入れるには
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <body> <?php $test = てすと; print '<p>$testしています。</p>'; ?> </body> </head> 「てすとしています。」と書き出したいのですが、このソースだと 「$testしています。」と表示されてしまいます。 うまく表示するにはどうすればいいのでしょうか?
- ベストアンサー
- PHP
- HTMLの構文
HTMLの構文ミスをhttp://htmllint.itc.keio.ac.jp/htmllint/htmllint.cgi こちらのサイトでチェックしていったのですが、 他のは調べたりして解決してきたのですが、 (1)<BODY> は </HEAD> の直後に続かなければなりません。 (2)<BODY> は <HTML>~</HTML> 内に1度しか書けません。12行目にもありました (3)<FONT> の COLOR 属性の色指定と <BODY BGCOLOR> の色は明度差(59.007)と色差(306)が不十分です の3つがどのように直すのか良く分かりませんでした。 3つ目については、めちゃくちゃあります お願いします!
- ベストアンサー
- HTML
- PHP4とPHP5のGETでの値引き渡し および & と & の使い分けについて
PHP4では、 http://mydomain/test.php?a=1&b=2 として、 test.php内で、 print "a=".$a.":"."b=".$b; のとき、 a=1:b=2 と表示していました。 PHP5に移行したところ、$_GETを使わないといけないということで、 print "a=".$_GET["a"].":"."b="._GET["b"]; としたところ、 a=1:b= となってしまい、bの値が取得できません。 そこで、 http://mydomain/test.php?a=1&b=2 ↓ http://mydomain/test.php?a=1&;b=2 つまり、 「&」の実体参照から「&」に変えると、 print "a=".$_GET["a"].":"."b="._GET["b"]; で a=1:b=2 と表示できます。 Another HTML-lintの解説では、&でなくてはいけないとかいてありますが、php5ではなぜ、&では$_GETに値を引き渡せないのでしょうか? (Another HTML-lintの解説) http://openlab.ring.gr.jp/k16/htmllint/explain.html#bad-entity ご存知の方が居られましたら、ご教示ください。 よろしくお願い致します。
- ベストアンサー
- PHP
- ファイルの一部をhtmlにしたい
初心者です。 PHPを使ってできるかわからないのですが、 CGIで出力されたファイル(a.dat)の一部を違うHTMLファイル(b.html)にしたいと思っています。 この場合どうやったらいいでしょうか? CGIの掲示板などをせっちするのはできるのですが、 PHPは初めてです。できるかどうかわかりませんが 質問させてください。よろしくお願いします。 ---a.dat----- aaaa bbbb cccc ------------ ---b.html---- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS" /> <meta name="robots" content="noarchive" /> <title>pickup</title> </head> <body> bbb </body> </html> ---------------
- 締切済み
- PHP
- エクセルでHTMLタグをそのままコピペしたい
エクセルでHTMLタグをそのままコピペしたいです メモ帳のHTMLタグをエクセルにコピペすると <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head><title>ABC</title></head> <body> <p>あああ</p> <p>123</p> </body> を仮にコピペしたら あああ 123 になってしまいます そのままコピペするにはどうすればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- HTMLの文法チェックをするとCSS関連でエラーが出て困っています。
http://validator.w3.org/ http://htmllint.itc.keio.ac.jp/htmllint/htmllint.html でHTMLの文法チェックをすると, <body><style TYPE="text/css"><!-- という行があるとエラーが出ます。 実際のHTMLは外部スタイルシートを使っているのですが <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="content-style-type" content="text/css"> <title>タイトル</title> <meta name="Keywords" content="キーワード "> <meta name="Description" content="内容説明"> <link rel="stylesheet" href="./css.css" type="text/css"> </head> <body> <div id="page"> 以下略 であり,<body>タグの後ろは<div>タグなのですが,何故かそう認識されます。 スタイルシートの指定がおかしいのかと考えたのですが, いくら検索しても<head></head>間に <link rel="stylesheet" href="./css.css" type="text/css"> を入れるとしか書いてなく理由がわかりません。 ちなみにcss.cssの内容は *{} というような内容の羅列のみで,その他の情報は一切入れていません。 どこがおかしい点なのかわからず悩んでおります。 理由のわかる方いましたら是非ご教授願います。
- ベストアンサー
- HTML
- PHPで動的にHTMLを出力したときの現象
サーバは自分で立てたcentOS5.4(i386版)を使用しており、そこでホームページの作成をしております。 ホームページは、PHP5+XHTML+CSS+JavaScriptを使用しており、それぞれ別ファイルで作成してあります。 アクセス先はPHPで、そのPHP内にテンプレートを表示する処理を記述してあるのですが、PHPで動的に表示した状態のソースを見ると、生のHTMLの内容と違った状態で表示されてしまいます。 生のHTMLと動的に出力したHTMLのソースは下記の通りです。 生のHTML ================= <?xml version="1.0" encoding="utf-8"?> <!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" xml:lang="ja" lang="ja" dir="ltr"> <head> ・ ・ ・ 動的のHTML ================= ?????????<?xml version="1.0" encoding="utf-8"?> <!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" xml:lang="ja" lang="ja" dir="ltr"> ・ ・ ・ 動的に出力した状態ですと、ソースの最初に"?????????"という文字が表示されてしまいます。 PHPやHTMLなど、全てのファイルは 文字コード:UTF-8 で、HTMLとCSSは 改行コード:CRLF で、その他のPHPやJavaScriptは 改行コード:LF で作成しております。 php内では、 まずテンプレートを"openFile"で開き、 文字列置換($bodyはテンプレートファイル) $body = str_replace("\\", "\\\\", $body); $body = str_replace("\"", "\\\"", $body); eval("\$body = \"$body\";"); をして、最後に mb_http_output("UTF-8"); header("Content-type: text/html;charset=UTF-8"); print($body); としてあります。 文字コードの関係で文字化けを起こしているため、最初に"?????????"とソースに表示されてしまっているのかと思うのですが、どこが原因なのか分かりません。 原因がお分かりになる方、同じ現象になったことのある方いらっしゃいましたら、ご教授のほどお願い致します。
- ベストアンサー
- HTML
- エラーメッセージについて
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\check.php on line 25 とでますが、line 25(一番下の行)が間違っていると言われ、プログラムさえ書いていません。 PHPを学ぶチャレンジをしている最中です。下記のように書きました。 -------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; if($nickname==") { print'ニックネームが入力されていません'; } else { print'ようこそ'; print $nickname; print'様'; } ?> </body> </html> -------- この下が line 25 です。 よろしくお願いいたします。
- 締切済み
- SE・インフラ・Webエンジニア
- HTML-lintでのエラーについて(実体参照エラー)
こんにちは。 自分で書いたHTMLをHTML-lintでチェックすると 「`&q` は不明な実体参照です。」というエラーと 「`&lr` は不明な実体参照です。」というエラーが出て 95点にしかなりません。 で、そのようなものを書いた記憶がなく 確認してみると、Googleの検索結果ページを リンクした部分にそれがありました。 たとえばGoogleで「教えて」で検索すると その結果ページは以下のようなアドレスになります。 http://www.google.co.jp/search?hl=ja&q=%E6%95%99%E3%81%88%E3%81%A6&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= この中にある「&q」「&lr」がいけないと 言われているわけですが、 こちら側でどうにか対処することは できるのでしょうか? よろしくお願いいたします。
- ベストアンサー
- HTML
お礼
お礼欄に書くのも変ですが、訂正 --------------- >よく考えたら「Refresh」をHTTPヘッダにしない理由が >なくなってしまいました(アホ>僕) なので <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> というご指摘の文を挿入します -----
補足
>3.の次に次行を追加して確認。 あ、忘れていたわけではないんです。 が、大ボケをかましてしまいました。 その一文を外したのは 「正しいHTTPヘッダを送れば必要ないな」 という理由からだったのですが、 よく考えたら「Refresh」をHTTPヘッダにしない理由が なくなってしまいました(アホ>僕) さて、 >URLの '&' を '&' とするのが正しいはずです。 そのために URL=mypage.php3?n=12345&c= ----- 4行目の部分はそれを考えて書いたものです。 URL=mypage.php3?n=12345&amp;c= --------- としろ、ということでしょうか? 実際これを施すと Another HTML lintでは、エラーは出なくなりました。 http://www.ne.jp/asahi/minazuki/bakera/html/reference/dataformat では >引用符で括られた >属性値の中身は RCDATA として解釈されます。 とあるので何か違和感があるのですが・・・・ W3CのMarkup ValidatorはDTD に従って文法をチェックするだけなので 上記二つのどちらもValidになってしまいます。