RSSフィードの表示

ブログなどのRSSフィードをPHPページへ読み込むコードです。

RSS2.0の場合

<ul>
<?php
$feeds_url = 'http://demo.s1jp.com/notes/?feed=rss2';
$rss = simplexml_load_file($feeds_url);
foreach($rss->channel->item as $item){
	$title = $item->title;
	$date = date("Y年 n月 j日", strtotime($item->pubDate));
	$link = $item->link;
	$description = mb_strimwidth (strip_tags($item->description), 0 , 110, "…Read More", "utf-8");
?>
<li><a href="<?=$link?>" target="_blank">
<span class="date"><?=$date?></span>
<span class="title"><?=$title?></span>
<span class="text"><?=$description?></span>
</a></li>
<?php } ?>
</ul>

3行目のURLを、表示したいフィードのURLにします。

RSS1.0の場合

上記コード例の7行目を以下のように書き換えます。

$date = date('Y年 m月 d日', strtotime($item->children("http://purl.org/dc/elements/1.1/")->date));

ファイルの準備と基本の書き方

ファイル拡張子は『.php』
<?PHP〜?>(PHPタグ)の中に記述

PHPのソースを記述して実行するためにはファイルの拡張子が『.php』でなければ動きません。

HTMLページ(.html)を作成して、後から拡張子を『.php』に変えても大丈夫。


PHPタグで記述

PHPのソースコードは、まず<?PHP 〜 ?>タグを書いてその中に。

<?php
 // ここはコメントです(1行コメント)
 print("Hello World !");
 /* ここもコメントです(複数行コメント)
    複数行のコメントを書きたい場合は/* 〜 */で挟みます */
?>
Code language: PHP (php)

各命令文(ステートメント)の最後に『;(セミコロン)』を付ける。
これを忘れるとエラーになります。(上例4行目)

行頭に『//』を付けてコメントを書くこともできます。コメント文はPHP実行時に無視されます。(上例3行目)

文章の最初と最後に『/* */』を付けて挟めば、複数行のコメントを書くことができます。(上例5〜6行目)

ファイル内容がすべてPHPコードの場合は、最後の終了タグ『?>』は省略可。

実行結果

Hello World!


HTMLタグの前(外)にも記述できます。

<?php
 $msg = "Hello World !";
?>
<html>
 <head>
 <meta charset="UTF-8">
        ・・・
 </head>
 <body>
  <p>
<?php echo $msg; ?>
  </p>
 </body>
</html>
Code language: HTML, XML (xml)

プログラミング言語に共通すること(1)

変数(variable)

プログラムの中で、データを一時的に記憶しておくための場所を確保して名前(変数名)を付けたもの。
PHPでは変数名の前に『$(ドル記号)』をつけて設定します。

<?php
 $foo = 1000; // 変数「$foo」に数値「1000」を代入
 $hoge = "Hello World !"; // 変数「$hoge」に文字列「Hello World !」を代入
 echo $hoge . "
"; // 変数「$hoge」を出力(改行指定付き)

 $taxRate = 8; // 消費税率を変数で設定(%)
 $tax = $taxRate/100+1; // 税込計算するための数値を設定
 echo $foo. "(本体価格)"; // 変数「$foo」に文字を加えて出力
 echo $foo * $tax . "(税込価格)
"; // 変数「$foo」に税率を掛けて出力
?>

実行サンプルはこちら

定数

変数と同じく、データを記憶しておく場所に名前(定数名)を付けたもの。
くり返し使う値・文字などを入れて使います。
※すでに関数名などで使われている単語は定数名として使えません。

<?php
 // define(定数名, 値);
 define("FOO", 1000); // 定数「FOO」に数値「1000」を設定
 define("HOGE", "Hello World !"); // 定数「HOGE」に文字列「Hello World !」を設定
 echo FOO . "<br>";
 echo HOGE . " It's my life !";
 HOGE = HOGE . " It's my life !"; // ×定数値の変更は不可
?>

実行サンプルはこちら

変数とのちがいは、最初に設定した値を後で変更することはできません。
定数名には『$(ドル記号)』は付けません。
変数名と区別するためにアルファベット大文字で定数名を設定するのが一般的。
※すでに関数名などで使われている単語は定数名として使えません。

配列(array)

これも変数のようにデータを収納しておく場所を確保して名前(配列名)を付けたたものですが、配列の場合は一連のデータ収納場所(要素)ができ、複数のデータが収納できます。配列の各要素は添字(インデクス番号)で区別して利用することが可能です。

<?php
 $arr = array(1000, "Hello World !", "It's my life !");
 echo $arr[0]."
"; // 数値「1000」を出力
 echo $arr[1]."
"; // 文字列「Hello World !」を出力
 echo $arr[1]." ".$arr[2]."
"; // 文字列「Hello World ! It's my life !」を出力
 $arr[1] = $arr[2]; // 配列「$arr[1]」の値を「$arr[2]」で書き換え
 echo $arr[1]; // 文字列「It's my life !」を出力
?>

実行サンプルはこちら

連想配列(hash)

配列の各要素番号(0、1、2・・・)を数字ではなく文字(キー)で設定したもの。

<?php
 $hash = array("foo" => 1000, "bar" => "Hello World !", "hoge" => "It's my life !");
 echo $hash["foo"]; // 数値「1000」を出力
 echo $hash["bar"]; // 文字列「Hello World !」を出力
 echo $hash["hoge"]; // 文字列「It's my life !」を出力
?>

実行サンプルはこちら

関数(function)

よく使う処理作業をまとめておき、名前(関数名)をつけて定義したもの。必要にところで関数名を指定して(呼び出して)使います。

関数には、予めPHPが用意している『組み込み関数』と制作者が自分で定義する『ユーザー定義関数』の2種類があります。(呼び出し方は同じです)

PHP(組込)関数の利用方法

目的の関数を使いたい場合で、関数名に(かっこ)をつけて利用します。

関数名(引数);

関数に値を渡して処理させる場合は(引数)のところに値を書いて渡します。

例えば日時を取得する関数『date()』を使って、現在の年数(西暦)を取得したい場合は下記のようにして使います。

<?php
 echo date(Y); // 現在の年数を表示(西暦)
?>

実行サンプルはこちら

関数は、基本的に関数名の後に(かっこ)が付くようになっています。
上記でご紹介した、定数を作成する『define()』や配列を作成する『array()』などもPHPが予め用意している関数です。
『echo』のように(かっこ)を省略できる関数もあります。

PHPでよく使う関数については、こちらのサイトなどを参考にしてください。

ユーザー関数の定義と利用方法

制作者自身で関数を定義するには、まずページの中または読み込むページのどこかに下記のようにな形式で処理内容を記述します。

function 関数名(引数1, 引数2, …){
 実行される処理;
 …..
}

<?php
function hello(){
 echo "Hello World !"; // 文字列「Hello World !」を出力
}
hello(); // ユーザー関数『hello()』の呼び出し(この場所で「Hello World !」と表示)
echo "
";

// 数値に消費税を加えるユーザー関数
function tax_price($foo){
 $tax = 8; // 税率設定
 $zeigaku = $foo * $tax / 100; // 受け取った数値から消費税額を計算
 $price = $foo + $zeigaku; // 受け取った数値に消費税額を足す
 return $price; // 処理した値を呼び出された場所に返す
}
echo tax_price(1000)."
"; // ユーザー関数『tax_price()』を呼び出して1000を渡して結果を出力
// (数値「1080」表示)
echo tax_price(2000); // ユーザー関数『tax_price()』を呼び出して2000を渡して結果を出力
// (数値「2160」表示)
?>

実行サンプルはこちら

定義済の変数

PHPでは予めいくつかの変数が既に設定されており、プログラムのなかで使うことができます。
【参考サイト】PHP マニュアル – 定義済の変数

【おまけ】

メソッド(method)

C++やJAVA、Swiftなどのオブジェクト指向プログラミングで、よく使う処理方法を記述したもの。
記述方法は関数とほぼ同じだが、オブジェクト指向プログラミングの
クラスや構造体のなかで扱うものを関数と区別してこう呼ぶ。
PHPもVer.4からオブジェクト指向プログラミングに対応しています。

必要なも

PHPを実行できるサーバー環境が必要。

PHPは、HTML・CSSやJavascriptなどと同様にテキストエディタや総合開発環境(IDE)などで作成できます。
しかし、動作・確認するにはPHPに対応したサーバー環境が必要になります。

ホスティングサービス(レンタルサーバー)のほとんどはPHPに対応しているので、予め準備することはなにもありませんが、ローカル上(社内や自宅のPCなど)で制作を行う場合は、Apache などの WebサーバーとPHPのインストールや、場合によってはMySQL などのデータベースもインストールする必要があります。

無料または低価格のホスティングサービスではPHPに対応していないものもあるので確認が必要です。
ホスティングサービスのなかでも『専用サーバー』のほとんどは、ApacheやPHP・データベースなどを独自でインストールしなければなりません。またセキュリティ環境も自力で構築する必要があるので、サーバー構築の知識が少ない方は『クラウド』や『共有サーバー』など、予めサーバー環境の整ったサービスを選びましょう。

オンラインIDEを使ってみよう

簡単なWebプログラム制作やWordPressプレスのカスタマイズなど、Webプログラミングのテスト・学習なら、Cloud9などオンラインIDEの利用がオススメです。

Cloud9の登録・利用方法はこちらのサイトなどを参考にしてください。

(2016年5月追記)

必要なのは根気?

制作環境以外に、プログラム制作で必要なのは、当然、基本的な記述方法を習得することですが、必ず上手くいかないこと(間違い:バグ)が出てきます。
その間違い探しと修正(デバッグ)を根気よく行う必要もあります。
ますは基本的な記述を何度も練習して小さな間違いを少なくしていきましょう。

また、他のプログラミング言語と似たところもたくさんあるので、基礎をしっかりと理解しておけば、他のプログラミング言語の学習にも役立つと思います。

PHPとは?PHPにできること

WEB制作で広く使われているWEBプログラミング言語です。

特に中規模のWeb開発やデータベースとの連携に適しており、HTMLに埋め込むことができます。

PHPにできること

PHPはHTMLだけでは実現できない、動的なページ内容の生成、フォームからのデータ取得やクッキーの送信・受信といった他のCGI プログラムなどにできることをすべて行うことができます。

PHPの詳細はテキストやこちらの参考サイトなどをご覧ください。

(引用)
PHPマニュアル — PHP とはなんでしょう?

PHPマニュアル — PHPにできることは?

【参考サイト】PHP マニュアル

PHP・UTF-8・BOMによるエラー

私自身、見つけるのに苦労したPHPのエラー原因です。

文字コード「UTF-8」には
『BOMあり(UTF-8)』『BOMなし(UTF-8N)』
の2種類があり、PHPファイルは『BOMなし』で保存しておかないとエラーを起こすことがあります。
※(カッコ表記)はTeraPadでの文字コード指定。

BOM』の有無はエディタなどで見ても全く解らないため、エラーの原因になっていても解りづらいです。
主にPHPで「session関数」や「header関数」をページ先頭で使っているとエラーメッセージが表示されます。

HTML5 + PHPの注意

HTML5でPHPコードを記述する場合の注意事項。

HTML5のページ先頭にPHP(<?php ・・・ ?>)を記述する場合。
PHPソースの終わり「?>」に「<!DOCTYPE html>」を続けて記述しないと、空行ができて不具合を起こす場合があります。

<span class="has-inline-color has-vivid-red-color"><?php</span>
 ・・・
<span class="has-inline-color has-vivid-red-color">?><!DOCTYPE html></span>
<html lang="ja">Code language: HTML, XML (xml)

自動ページジャンプ

ページを自動的に移動させる方法です。

HTML<meta>タグでのジャンプ指定

旧サイトから新サイトへ移転した場合などに、移転先URLを知らせる(自動移動させる)方法としてよく利用されています。

<meta http-equiv="refresh" content="秒数; URL=移動先のURL">

「秒数」の部分にジャンプさせるまでの時間を指定。
その後を「;(セミコロン)」で区切り、移動先のページURLを「絶対パス」または「相対パス」のどちらかで指定します。

閲覧者の環境によっては自動的にジャンプしない場合もあるので、ページ中(<body>タグ内)に移動先ページへのリンクも記載しておくことをおすすめします。