CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

php.iniの設定で「short_open_tag」という項目があります。
こちらを設定することで、PHPタグを短くすることができます。

通常、PHPの命令を書く場合には以下のように「<?php ~ ?>」でプログラムソースを囲みます。

<?php echo("命令"); ?>

文字列を切り出す場合にはsubstr()関数を用います。
以下の例では文字列「abcdefg」の2バイト目から3バイト分の文字列を切り出すので、結果は「cde」となります。

$str = substr("abcdefg", 2, 3);

PHPでアンケートフォームやメールフォームを設置する場合に、POSTされたデータの処理を考えます。
作業する度に、毎回考えさせられるような事なので、ここでメモとして残しておきます。

まず、POSTされたデータは、DBに格納する、ファイルに書き出す、メールで送信するなどのアウトプットが考えられるので、それぞれに応じた文字コードに変換してあげる必要があります。例えば、UTF-8に変換したいのであれば以下のように処理します。

mb_convert_encoding($str, "UTF-8", "auto");

PHPに限った話でなありませんが、プログラミングで「何時間後」や「何日後」などを求めなければならない場面は結構多いです。
普通に処理の流れを考えると、timestamp関数などで現在時刻を取得して、x日後だと1,000ミリ秒かける60秒かける60分かける24時間かけるx、の値を加算して、さらにフォーマットを変換して出力。。。といったようなめんどくさい記述を書いてしまいがちです。

PHPにはとっても簡単な記述方法があったんですね。

通常、PHPで送信フォームなどを組んだ場合に、画面の遷移は
「入力画面」→「確認画面」→「完了画面」
となるのが基本だと思います。
例えば、確認画面から「送信」アクションを発行すると、DBなどに情報を書き込み完了画面を表示するという単純なプログラムを組んだとします。
このとき、完了画面でページリロードをかけられると、再度DBへの書き込み処理が実行され、二重送信となってしまうことがあります。
プログラミング不備の問題ですが、私も結構やっちゃいます。

最近、PHPの開発に携わる機会が多く、自分の今後のためにと、関数軍をなるべく再利用できるように蓄積しています。しかし、単にコメントをつけて、phpファイルを整理しているつもりでも、後々何がどこにあるやら分からなくなります。
javaにjavadocがあるように、phpにもそのしくみがないものかと探してみたら、見つけました。
phpDocumentor

Monthly Archives

Search