トップページ > ホームページ作成 > ファイルをインクルード2
PHPを利用したホームページの作成方法です。「ファイルをインクルード2(PHPで文字列入替え)」では、各ページに共通な部分を外部ファイルから読み込む場合に、文字列を入替えてインクルードする方法をお教えします。ご使用のサーバーがPHPを許可していることが条件になります。
外部ファイルの文字列を入替えてPHPで読み込む方法
PHP(PHP : Hypertext Preprocessor)で、外部ファイルから読み込んだ内容を表示する方法は、ファイルをインクルードで、紹介しました。ここでは、外部ファイルのなかの文字列を入替えてインクルードする方法をお教えします。
文字列を入替えて便利な場合は、例えば共通リンクリストを違うディレクトリィ階層のファイルで使用したい場合、リンク先の相対アドレスが異なりますので、そのまま使えません。せっかく共通ファイルにしたのに、階層をかえたファイルをもう一つ作るのはナンセンスです。相対アドレスを示す「../」などを入替えられれば、共通ファイルが一つで済みます。
そこで、ここではPHPで外部ファイルを読み込み、「文字列を入替えてからHTLMファイルにインクルードする方法」で実現してみました。
<?php // $file_nameファイルの$stringを$string2に置き換えてインクルード
$file_name = "../sample/link_list_ch_w.txt" ;
$string1 = "../" ;
$string2 = "" ;
// $file_nameを読み取りモードで開く
$file = fopen ( $file_name, "r" ) or die ( "$file_nameが開けません" );
$orgn_txt = fread ( $file,filesize($file_name) ) ; //ファイルを全て読み込む
$ch_txt = str_replace ( $string1,$string2,$orgn_txt ) ; //文字列置き換え
echo $ch_txt ; // 置き換えたテキストを表示
fclose ( $file ) ; // ファイルを閉じる
?>
上のリストは、「../」を「""」(文字列なし)に入替える仕様ですが、汎用的に使えるソースにしましたので、「$string1」に入替え前の文字を 「$string2」に入替えたい文字を入れればそのまま使えます。 試してみてください。
応用としては、ソースリストをHTLMで表示させたい時、ブラウザに表示できるようにタグ「<」を「<」に入替えて外部ファイルをインクルードしたりできます。(この場合は、「>」も「>」に入替える必要がありますので、文字列入れ替えをもう一度実行する必要があります。)その他にも、色々使えると思います。
文字列を入替えてPHPで読み込んだサンプル
PHPのincludeテスト(文字列入れ替え)は、外部ファイル(link_list_ch_w.txt)をそのまま読み込んだ場合と、文字列を入替えて読みんだ場合の両方を使ったサンプルです。
<html>
<head>
<title>PHPのincludeテスト(文字列入れ替え)</title>
</head>
<body>
<h1>リンクリストをインクルードする(文字列入れ替え)</h1>
<h2>ファイルの内容そのままインクルード</h2>
<p>リンクリスト(link_list_ch_w.txt)をそのままの内容でインクルードした結果は、次の通りです。</p>
<?php include("../sample/link_list_ch_w.txt"); ?>
<h2>ファイルの文字列を入れ替えてインクルードする</h2>
<p>
上のリンクリストにある、「../」を「""」(文字無しで削除)と入れえた結果です。
</p>
…ここには、上の「文字列を入替えてからHTLMファイルにインクルードする方法」と同じリストが入る。…
</body>
</html>
(link_list_ch_w.txt)の内容は、次の通りです。
<ul>
<li><a href="#">../sample/link_list_ch_w.txt(ダミー1:クリックしてもリク先はありません)</a></li>
<li><a href="#">../sample/link_list_ch_w.txt(ダミー2:クリックしてもリク先はありません)</a></li>
</ul>
PHPのincludeテスト(文字列入れ替え)をクリックして、ブラウザで表示して見てください。 もとのファイルには「../」が書かれていたのに、このスクリプトを実行すると「""」(文字列なし)に入替えられて削除されました。当然、<a href="のなかのURLにも有効になりますので、この方法で相対アドレスが変更できます。