PHP

[Redmine] チケットをRESTful APIで作成する - PHP版

RedmineのCSVをインポートする機能は便利なんですが、親チケットと子チケットを同時に登録できないのが辛いところ。そこで今回はRedmineのRESTfulAPIを利用しプログラムからチケットを登録する方法をまとめます。

[WordPress] 記事の更新日を表示する

小ネタです。 Wordpressで使っているテーマが記事の「公開日」だけしか表示してくれないので、「更新日」も表示するよう修正しました。 結論から言うと以下のようなコードをテーマに埋め込むだけです。 <span title="公開日"> 公開日:<time itemprop="datePublished" datetime="<?php the_time('c');?>"></time> </span>

[PHP] MySQLをPDOで操作する – 入門編 その3「モデル編」

※この記事は専門学校の講義用に作成されたものです PDOはデータベースへのアクセスを抽象化してくれる非常に便利なライブラリですが、ある程度の規模のシステムになってくるとメンテナンス性を向上したくなりもう一段階、抽象化したくなる物です。最近人気の…

[PHP] MySQLをPDOで操作する – 入門編 その2 「トランザクション」

※この記事は専門学校の講義用に作成されたものです 前回に引き続きPHPからMySQLを操作します。今回のテーマは「トランザクション」への対応です。トランザクションをマスターすれば、2つ以上のSQLを実行した際にいずれかの実行が失敗した場合でも、そのすべ…

[PHP] MySQLをPDOで操作する - 入門編 その1

※この記事は専門学校の講義用に作成されたものです 今回はPHPからMySQLへ接続しデータの取得と追加の練習を行います。 データベースとのやり取りには様々な罠が待ち構えており、ちょっと書き損じた(設定を忘れた)だけでサービスが崩壊することもよくあります…

[PHP] アクセスカウンター用のRESTfulAPIを作成する - その2 DB版

前回作成した「アクセスカウンター」を、今度はデータベースに対応させてみます。裏側を変更するだけなので、表示はまったく同じです。 作戦としてはPHPにリクエストがある度にテーブルに1レコードずつ追加されていき、現在の値はレコード数を集計することで…

[PHP] アクセスカウンター用のRESTfulAPIを作成する - その1 ファイル版

PHPの練習用にアクセスカウンター用のREST APIをPHPで作成します。 最終的に以下のような画面になります。ここで再読み込みを行うと数値がどんどん加算されていきます。 ※この記事は専門学校の講義用に作成した物です。

[Quora] サーバ2台構成の場合、PHPのセッションの保存先はどうすれば良いの?

Quora回答シリーズです。 質問 Webサーバー2台でPHPのセッションを使いたいのですが、2台が共通で参照できる領域がありません。DBは負荷の懸念があるので避けたいのですが他に何か方法はありませんか? https://qr.ae/pNy6h8 回答には書きませんでしたが、以…

[HTML5] Fetch API でファイルをアップロードする

正直、ファイルのアップロードは考慮すべきことが多すぎてあまり関わりたくないのですが、そうも行かないのが世の定めw 今回はFetchAPIを利用してサクッとファイルをアップする手法についてまとめます。 サーバ側はPHPで実装しますが、考え方は他の言語でも…

[HTML5] Canvasを画像に変換しサーバへ送信する

Canvasに描画した内容を画像としてサーバへ送信し、そのままサーバに保存してみます。 今回は入力したテキストがそのままCanvasに描画される簡単なサンプルを用意しました。文字色と背景色もおまけで変更できます。もう少し頑張るとバナー画像ジェネレーター…

LAMP環境をAWS Lightsailで新規に構築する

今回はAWSで気軽にVPSサーバを立てることができるLightsailで、LAMP環境を構築してみます。1台のサーバにWebとDBが同居する形の非常にシンプルな物です。 もともとAnsibleで自動化しようと思ってタスクを洗い出していたのですが、せっかくなのでブログにも残…

[Apache] mod_cacheで動的なコンテンツをキャッシュする

動的なコンテンツをPHPやPython、Rubyなどで生成しているサービスはたくさんありますが、すべてを毎回最新の情報に書き換える必要は無い場合も多いでしょう。一定時間は許容されたり、同じ情報を複数のユーザーで共有することも場合によっては可能なはずです…

[Apache] バージョン情報を出力しない

本番用のWebサーバでは利用しているソフトウェアのバージョン情報を表示しません。 例えば何らかの事情で最新版を利用していないことがわかると簡単に脆弱性を突かれてしまいます。また直接的に攻撃をされなくともクラックのきっかけになりますので不要な情…

[PHP] 7.1から7.3へアップグレードする

AmazonLinux上でPHP7.1を利用していたのですが、今年の12月でセキュリティアップデートの提供が終了するため、サポート期間が2021年12月までのPHP7.3へアップグレードしました。 PHP7.1のサポート期間が今年12月1日までなので、週末は7.3にアップデート作業…

GitHub APIでIssueを操作する with PHP

GitHubへ一度に大量のIssueの登録をしなければならない、プロジェクト開始時などよくあるシチュエーションかと思います。10件や20件程度なら手作業でも良いのですが、数十個を超えてくるとさすがに人間でやるのは大変すぎるので機械にお願いしたいところ。 …

GoogleAppsScript(GAS)のIPアドレス範囲を調べる

GASからUrlFetchApp.fetch()した場合にどのIPアドレスからリクエストが来るか事前に知りたい場合がありますよね。社内や身内だけで使っているクローズドなサーバなどでです。今回はこの調査方法についてまとめます。

[PHP] 公式ドキュメントを生成する

PHPの公式ドキュメントは環境さえ用意すれば自分でビルドすることができます。 DocBookと呼ばれる仕組みが採用されており、HTML以外にも様々なフォーマットに出力できるため、例えばPDFやePubを生成し、KindleやiBooksなどの電子書籍リーダーで閲覧すること…