PHPのコーディング規則、PSRを学ぶ(2)

PHPのコーディング規則、PSRを学ぶ(1)の続きです。
今回は基本中の基本、文字コードと改行コードを設定します。

自宅サーバーで試します。(自宅サーバーの作り方はこちら)
そのための基本設定も行います。

1.「php.ini」の編集(開発者モードへ変更)

「C:\xampp\php」フォルダにある「php.ini」をテキストエディタで開きます。

「php.ini」の535行目(error_reporting)を以下のコードに変更し、保存します。

error_reporting=E_ALL

これで全てのエラーが表示されるようになります。

2.自宅サーバーを起動する

「XAMPP」を起動します。
XAMPPの項目の「Apache」の「Start」をクリックして自宅サーバーを起動します。

3.テスト用フォルダ「phptest」の作成

デフォルトでは「C:\xampp\htdocs」が自宅サーバーのルートアドレス(http://localhost/)です。
そこに「phptest」フォルダを作成します。

4.PHPを書いてみる

「phptest」フォルダに移動し、「test.php」ファイルを作成します。
「test.php」をテキストエディタで開きます。

以下のコードをコピー&ペーストします。

<?php
namespace Vendor\Package;

class ClassName
{
    public function fooBarBaz($arg1, &$arg2, $arg3 = [])
    {
        // method body
    }
}

注意する点としては以下の通りです。
・開始は必ず「<?php」から行い、ファイルがPHPのみの場合最後の「?>」は必要なし
・字下げは「半角スペース4つ」でタブを使わない
・括弧の前後にスペースは入れない。波括弧は独立した行に。引数のカンマの後に空白を(改行して書く書き方もあり)。
・PHPファイルの改行はLF(Unixフォーマット)で。←これがよくわからないので、次の章で説明します。
・文字コードは「UTF-8のBOMなし」を使う
(【php】いまどきのPHPコーディング規約 PSRより)

5.PHPの改行をLF(Unix)フォーマットに変更 & 文字コードを「UTF-8のBOMなし」に変更

Windowsでは1つの改行を「CR+LF(\r\n)」で表し、Macでは「CR(\r)」、Unixでは「LF(\n)」と表します。
統一しないとまずいのでUnixのLF(\n)が選ばれたようです。

1.Notepad++の場合
上部メニューの「編集」から「改行コードを変更」を選択。
Unixフォーマット(LF)に変換をクリック。
上部メニューの「エンコード」から「UTF-8(BOMなし)に変換」をクリック。
ファイルを保存。

2.TeraPadの場合
上部メニューの「ファイル」から「文字/改行コード指定保存」をクリック。
改行コードを「LF」、文字コードを「UTF-8N」にして上書き保存にチェックし「OK」をクリック。

まとめ

今回は文字コードや改行コードなどを設定しました。
基本中の基本ですが、それをやっておかないと後々苦労します。
(今現在私がその状況に陥っていますorz)
少しずつですが頑張っていきましょう!

次の記事

PHPのコーディング規則、PSRを学ぶ(3)へ

参考

改行コードの話

PHPのコーディング規則、PSRを学ぶ(1)

PHPはかなり自由に書けることが魅力なのですが「自由に書ける」=「独自化する」=「その人以外わからない」等式が成り立ってしまいます。

これは困った。

つまり、コーディング(コードの書き方)の一般的な規則があれば、「誰が書いたコードでも簡単に読める」素晴らしい効果が得られます。

この記事のねらい

「でも、初心者だしよく語句がわからん」という方のために書きます。

私も初心者なので、いろいろとわからないことがあります。
つまり、自分のために書きます。/(^o^)\

個人的に「名前空間の汚染って何?」「PHPの今風の書き方ってどうするの?」など多くの疑問がありました。加えて、新標準PSRに学ぶきれいなPHPの19ページ、「名前空間はベンダー名から必ず始める」「名前空間の区切りはディレクトリ階層になる」・・・なんとなく意味がわかるのですが、固有名詞の「ベンダー名」「名前空間の区切り」がわかりません。
ということで、この「PSRを学ぶ」には自分がわかりにくいと感じた所、わからなかった所には詳細な解説をします。

次の記事

PHPのコーディング規則、PSRを学ぶ(2)

参考にさせていただくページ

(2013/11/11 18:14訂正しました)
PHP-FIG
新標準PSRに学ぶきれいなPHP
PSR-0, 1, 2を日本語に翻訳してみました
【php】いまどきのPHPコーディング規約 PSR

このサイトの2つの問題点を考える

どうしたらもっとサイトを見てもらえるか?を考えていました。備忘録的意味も込めて書いておきます。

最大の問題点:コンテンツがない(少ない)

サイトを改めて確認して再確認しました。
1つに手をかけすぎで、もっと求められるコンテンツに手が伸ばせていません・・・。

EBS2やまとめ読みなどの少し手がかかるもの配布はあるものの、使われやすいカウンタなどの”よく求められる”プログラムを作っていませんでした。あって当たり前という前提があったのが問題でした。

例えば「簡単なコードを書けば動くHTMLとJavaScriptの組み合わせ」も一昔前の分しかありません。最新のプログラムは技術的に紹介されがちです。PHPを学び始めの頃、使えて当たり前の前提で話を進められると諦めるしかなかったですね。(^^;)

2番目の問題点:何を書きたいのかわかりにくい

「自分が何をやりたいのか」がはっきりしていないことに原因があるでしょう。

やりたいことはいっぱいあります。
・自分の技術(プログラム)で面倒なことをなくしたい
・作ったもの(自分)を認められたい
・誰でも情報技術(プログラム)を使えるようにしたい
など、挙げたらきりがありません。

まとめ

「今、何をすべきか?」と考えれば、Web制作に興味のある初心者のための「簡単に導入できるプログラム(カウンタ・チャット・掲示板・メール送信)の配布」「プログラムの編集に必要なモノ(テキストエディタの使い方、FTPの使い方、自分PCをサーバー化する方法など)の紹介」をすべきです。

何がしたいか?を追及していますが!

ちょっと変な感じですが以上です。(;^^)

独自ドメイン取得

ねんがんの どくじどめいんを しゅとくしたぞ!( ^^)

「http://rei-farms.jp/」を独自ドメインとして取得しました。
ブログは「http://rei-farms.jp/webmaking/」からも読めるようになります。
ミニ四駆系は「http://mini4wd.rei-farms.jp/」に格納。

記念に、わかりにくかったブログ名を「R@schticks.」から「Rの考え方」に変更しました。
“独自ドメイン取得” の続きを読む

JavaScriptで特定地域にターゲット広告を表示

javascript-
ある特定の都道府県だけ表示したい広告を作ったので、そのコードを公開します!

1.Google AJAX APIを読み込み

<script type="text/javascript" src="http://www.google.com/jsapi"></script>

外部JavaScriptファイルを読み込みます。

2.広告リンクの設定

JavaScriptで以下のように記述します。

(function(){
  // Google AJAX APIで都道府県を取得し、your_regionに格納
  var your_region=google.loader.ClientLocation.address.region;
  //リンク設定
  links = new Array
  links[0] = 'リンク0';
  //地域設定(links[n]と連動)
  regions = new Array
  regions[0] = new Array('長崎県','佐賀県','福岡県','熊本県','大分県');
  //表示する広告を選択
  select = new Array;
  select_i = 0
  for(i=0;i<regions.length;i++){
    if(regions[i].indexOf(your_region)!=-1){
      select[select_i]=links[i];
      select_i++;
    }
  } //表示
  if(select_i>0){
    var number = select.length;
    var number2 = Math.random();
    var random = Math.round( (number-1) * number2);
    document.write(select[random]);
  }
})();

3.解説

リンク0(links[0])は、長崎県付近の方のみ表示されるように設定されています。

これを応用すると、長崎県なら長崎・佐賀・福岡・熊本・大分に表示、熊本県なら・・・というのを全て設定しておきます。そうすると有効に広告が出せるんじゃないでしょうか?

PHPで祝日判定

elephpants-side
PHP 祝日判定で検索すると、「GoogleカレンダーAPIで祝日を取得する」ばかりです。
しかし、GoogleカレンダーAPIは抜け落ちている祝日が存在することが知られています。

今回は、抜け落ちが無いようなコードをお伝えします。すごく原始的なやり方です。

1.「$holidays」に休日を格納

無名関数を使用しているため、動作環境はPHP5.3以上が必要です

$holidays = function(){
	$holidays = array();
	$file_array = file(&quot;./holiday.log&quot;);
	for($i=0;$i&lt;count($file_array);$i++){
		if($file_array[$i]){
			$file_array[$i] = str_replace(array(&quot;\r\n&quot;,&quot;\r&quot;,&quot;\n&quot;),'',$file_array[$i]);
			$val = explode(',',$file_array[$i]);
			$holidays[&quot;$val[1]&quot;] = $val[0];
		}
	}
	return $holidays;
};

2.祝日用ファイル「holiday.log」を設定

以下のデータを「holiday.log」にコピーして保存。

3.判定

配列「$holidays」の中に全て格納されています。
keyの形式は「year/month/day」(例:2013/1/1)であり、
valの出力は「祝日名」(例:$holidays[“2013/1/1”]で「元旦」)となっています。

4.祝日法が変わった場合には

祝日についてのトップページの少し下にある、祝日一覧に、入手したい年を記入して「Outlook祝日更新」をクリックします。

そうすると新しいウィンドウが出てくるので、下の方にある【 *~*年 Outlook 祝日更新データ 】を確認してください。

以下のようなデータが出てくると思います。(例:2013~2015年)

一番上の[日本] 51だけを外したデータを「holiday.log」にコピー&ペーストします。

そして、アップロードすると完了です。

5.注意点

異常なデータを削除する機能は付いていませんのでご注意ください。

ユーザーのフォントを統一できる、Google Fontsの紹介

131664241abb6e24fe0a685346ae6726
Web制作で困ることが多いのは「ユーザー全員が使えるフォントがない」ことでしょう。
ユーザーのパソコンに入っているフォントによって見え方が異なるためです。
つまり「見え方が統一できない」ことが多いです。

それを解決するために、Google Fontsを使います。

使い方

トップページ(上図)から、使いたいフォントを「Add to Collection」で追加。
右下に「USE」が出てくるのでそれをクリック。
6f5ac8c355603d74886ec113a21225c6

1. Choose the styles you want: ・・・使いたいスタイルを選択

2. Choose the character sets you want: ・・・使いたい文字設定を選択
が出てきます。基本的に触らなくてOK。

3. Add this code to your website: ・・・コードを入れたいページに貼り付け
例:<link href=’http://fonts.googleapis.com/css?family=Molle:400italic’ rel=’stylesheet’ type=’text/css’>

4. Integrate the fonts into your CSS: ・・・導入したいところにCSSで記述
例:<font style=”font-family: ‘Molle’, cursive;”>test</font>
例2:CSS設定の中に
.font{font-family: ‘Molle’, cursive;}

まとめ

これで導入したページ内なら、このフォントがだれでも見れるようになります!

WordPress記事ページ毎にfacebookのコメントフォームを付ける

facebook logo
wordpress記事ページ毎にfacebookのいいねボタンを付けるの関連記事です。

作り方

PHPを直接編集します。

1.content-single.phpへアクセス

管理画面 > 外観 > テーマの編集 > content-single.php にアクセス。
(画面右の content-***.php の中にあります)
c16ca6cccece1e00de73820f3e324de7

2.content-single.php を編集

27行目くらい(図参照:</div> <!– .entry-content –>の上に)に下記のコードを入力します。
9a3837ed81a395aa49172fadd3b21235

コード(wordpress各記事に記述するサンプル)

&amp;lt;div id=&amp;quot;fb-root&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script&amp;gt;(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = &amp;quot;//connect.facebook.net/ja_JP/all.js#xfbml=1&amp;quot;;
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));&amp;lt;/script&amp;gt;
&amp;lt;div class=&amp;quot;fb-comments&amp;quot; data-href=&amp;quot;&amp;lt;?php echo get_permalink($post-&amp;gt;ID); ?&amp;gt;&amp;quot; data-numposts=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

汎用版コード

&amp;lt;div id=&amp;quot;fb-root&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script&amp;gt;(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = &amp;quot;//connect.facebook.net/ja_JP/all.js#xfbml=1&amp;quot;;
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));&amp;lt;/script&amp;gt;
&amp;lt;div class=&amp;quot;fb-comments&amp;quot; data-href=&amp;quot;「URL」&amp;quot; data-numposts=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

* 「URL」に任意のURLを入れてください
* URLエンコードは必要ありません。

URLエンコードが必要な場合、wordpress記事ページ毎にfacebookのいいねボタンを付けるを参考にしてください。

ミニ四駆ブログまとめ RSS読み込み速度の改善

更新時、非常に重い思いをしていたRSS読み込み速度が改善されました。
読み込み時間が約1/3くらいになったと思います。

わかったブログ – 複数のRSSフィードを高速でまとめる方法を参考にしました。ありがとうございました。( ^^)