phpな休日 BBS sitemap
1. 1行読み込んで表示する。

php holiday
とだけ書いたテキストファイルがあります。

スクリーンショット画像
1.txt

<?php
$data = fopen ("1.txt","r");
$line = fgets ($data);
fclose($data);
?>

テキストファイルを読み込む場合上記のようにします。
fopen がファイルを開く関数です。1.txt を読み取り専用モード r で開いて、ファイルポインタ $data に格納しています。
次に fgets で1行読み込んで変数 $line に格納します。
最後に fclose で閉じています。

上記に print 文を追加して実行してみましょう。

<?php
$data = fopen ("1.txt","r");
$line = fgets ($data);
fclose($data);
print $line;
?>

実行

表示の際に文字を大きく太くしてみましょう。

<?php
$data = fopen ("1.txt","r");
$line = fgets ($data);
fclose($data);
?>
<font size="5"><b>
<?php
print $line;
?>
</b></font>

このようにPHPとHTMLを交互に記述することができます。

実行
2. 1行に複数項目ある場合。

phpな休日 管理人haku http://www.p-ho.net/
と3つの項目を <> で区切ったテキストファイルがあります。

スクリーンショット画像
2.txt

区切り文字 <> で区切られた文字列を配列に変換します。

<?php
$data = fopen ("2.txt","r");
$line = fgets ($data);
$list = explode("<>",$line);
fclose($data);
print $list[0] . "<br>¥n";
print $list[1] . "<br>¥n";
print $list[2];
?>

実行

explode は区切り文字で文字列を区切り、配列にして返す関数です。
$list[0]phpな休日 が、
$list[1]管理人haku が、
$list[2]http://www.p-ho.net/ が入りました。
プリント部分は

print $list[0];
print "<br>¥n";
print $list[1];
print "<br>¥n";
print $list[2];

と書いても良いのですが、PHPの命令とHTML部分を1行に続けて書く場合は
PHP部分 [半角スペース] .(ピリオド) [半角スペース] " で囲ったHTML部分 と書きます。

以上が [テキストファイルを読み込んで]、[配列に格納して]、[WEBページに表示] する場合の流れですが、データに日本語も含まれていますので文字コードにも対応する必要があります。ソース全体は下記のようになります。

<?php
mb_language("ja");
mb_internal_encoding("UTF-8");
$data = fopen ("2.txt","r");
$line = fgets ($data);
$list = explode("<>",$line);
fclose($data);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>phpな休日</title>
</head>
<body>
<?php
print $list[0] . "<br>¥n";
print $list[1] . "<br>¥n";
print $list[2] . "<br>¥n";
?>
</body>
</html>

2行目で日本語を、3行目で内部エンコードを設定しています。

サブウィンドウで実行
2022.9.20 last edit

Produced by haku