<!-- templates.html -->
<html>
<body>
<h1>{$a}</h1>
{$b}
</body>
</html>
<?php
// テンプレート中の変数
$a = '見出し';
$b = '本文';
// テンプレートを読み込む
$html = implode('', file('templates.html'));
// eval (PHP コードとして評価) するための準備
$html = str_replace('"', '\"', $html); // " をエスケープ
// 文字列 ($html) を PHP コードとして評価し,変数 ($output) に代入
eval ("\$output = \"$html\";");
// 結果を出力
print $output;
?>
2004-03-02-3: [PHP]
<?php
// バッファをファイルに保存するコールバック関数
function saveBuffer($buffer) {
if ($fh = fopen('test.html', 'w')) {
fwrite($fh, $buffer);
fclose($fh);
}
}
// バッファリング開始
ob_start("saveBuffer");
$a = 1 + 1;
echo '<html><body>1 + 1 =', $a, '</body></html>';
// 後処理 (全バッファの消去)
while (@ob_end_clean());
?>
ファイルを出力しました.
mysql_connect('localhost:/tmp/mysql.sock', 'userid', 'password');
2004-02-08-8: [PHP]
両方とも実際には関数ではなく言語構造ということでは同じ.
echo は,1 つ以上の引数を取れる
print は,1 つしか引数を取れない
echo 'a', 'b', 'c'; // OK
print 'a', 'b', 'c'; // NG: PHP Parse error: parse error, unexpected ','...
補足トリビア
<?= 'a', 'b', 'c' ?>
これもいける
- echo - 1 つ以上の文字列を出力する
void echo ( string arg1 [, string argn...] )
http://www.php.net/echo
- print - 文字列を出力する
print ( string arg )
2004-01-21-6: [PHP]
- [PHP-users 12416] ファイルの相対パス指定とディレクトリのパーミッション(4.3.0)
http://ns1.php.gr.jp/pipermail/php-users/2003-January/012422.html
- [PHP-users 12421] Re: ファイルの相対パス指定とディレクトリのパーミッション(4.3.0)
http://ns1.php.gr.jp/pipermail/php-users/2003-January/012427.html
- PHP Bugs: #21310: no such file (paths)
http://bugs.php.net/bug.php?id=21310
2004-01-19-16: [PHP]
http://www.zend.co.jp/products/studio/ZendInformationCenter/main/index.htm ...
PHP の設定等