戻る

HTMLの出力と変数の展開

JavaScript

また、「"(ダブルクオート)」「'(シングルクオート)」の区別はありませんが、文字列を「"(ダブルクオート)」で囲った場合、文字列に「'(シングルクオート)」をエスケープなしで使うことができ、逆に、文字列を「'(シングルクオート)」で囲った場合、文字列に「"(ダブルクオート)」をエスケープなしで使うことができます。

JavaScriptの場合「"(ダブルクオート)」「'(シングルクオート)」の中の、文字列に変数を含めた場合は、変数を展開することができません。

<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="disp"></div>
<script type="text/javascript">
var str = "こんにちは";
var obj = document.getElementById("disp");
obj.innerHTML = str;

//一行で書いた場合
//document.getElementById("disp").innerHTML = "こんにちは";
</script>
</body>
</html>

<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="disp"></div>
<script type="text/javascript">
var str = "こんにちは";

var disp = '<table border="1">\n';
disp += "<tr>\n";
disp += "<td>\n";
disp += str;
disp += "</td>";
disp += "</tr>";
disp += "</table>"

var obj = document.getElementById("disp");
obj.innerHTML = disp;
</script>
</body>
</html>

PHP

すべてechoで出力。

<?php
header("Content-type: text/html; charset=utf-8");

$str = "こんにちは";

echo "<html>\n";
echo "<head>\n";
echo "<title>HTML出力</title>\n";
echo "<body>\n";
echo $str ."\n";
echo "</body>\n";
echo "</html>";
?>

出力部分のみHTML内に組み込む。

<?php
header("Content-type: text/html; charset=utf-8");

$pen = 100;
$note = 150;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HTML出力</title>
</head>
<body>
<table border="1">
	<tr>
		<td>ボールペン</td>
		<td><?=$pen?>円</td>
	</tr>
	<tr>
		<td>ノート</td>
		<td><?=$note?>円</td>
	</tr>
</table>
</body>
</html>

「"(ダブルクオート)」で文字列を囲った場合は{$変数}を展開しますが、「'(シングルクオート)」の時は展開しません。echoの後に、<<<を記述して、その中を終端ワードで囲んだものは「ヒアドキュメント」と呼ばれ、変数を展開することもできます。

<?php
header("Content-type: text/html; charset=utf-8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HTML出力</title>
</head>
<body>
<?php

$str ="ヒアドキュメント";
echo "<table border=\"1\">\n";
echo "<tr>\n";
echo "<td>\n";
echo "ここは{$str}を使っていません。";
echo "</td>";
echo "</tr>";
echo "</table>";

echo <<<EOT
<table border="1">
<tr>
	<td>
	ここは{$str}を使っています。
	</td>
</tr>
</table>
EOT;
?>
</body>
</html>

最初の終端ワードを「'(シングルクオート)」で囲んだものは「Nowdoc」と呼ばれ変数を展開することはできません。

$str ="Nowdoc";

echo <<<'EOT'
<table border="1">
<tr>
	<td>
	ここは{$str}展開できません。
	</td>
</tr>
</table>
EOT;
?>
</body>
</html>

inserted by FC2 system