2020年1月5日日曜日

PHPで文字コードを変換する

文字コードの変換は以下のようにやれば簡単にできるようです。
mb_convert_encoding($str, "SJIS", "UTF-8")
Web上での表示はUTF-8で問題ないのですが、ダウンロードする場合はSJISにしたいので、調べてみました。

以下のサイトを参考にさせていただきました。
PHPで文字コードを変換する方法【初心者向け】

2019年11月19日火曜日

PHPの拡張子を隠す

Apache設定の話ですが、検索すると以下の設定をすればできるよ、というサンプルがよく出てきます。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

でも、私の環境だとうまく動いてくれなかったんですよね。
代わりに、以下の設定であればうまく動きました!
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [NC,L]

このあたり、ちゃんと理解していないのがダメですね。。。

以下のサイトを参考にさせていただきました。

2019年11月18日月曜日

「名前解決確認(nslookup/dig)」のエンハンスを行いました!

名前解決確認(nslookup/dig)でホスト名の指定にURLをそのまま入力できるようにしました。
例えば、これまで「https://service.suama.onl/dig-nslookup.php」をそのまま入力するとフォーマットチェックエラーになっていましたが、今後は自動的に「service.suama.onl」に変換されます。

ブラウザからURLをそのままコピーして名前解決を確認したいときに、少し便利になりました。

2019年11月4日月曜日

「IPおみくじ」を公開しました!

新たに「IPおみくじ(β)」を公開しました!

今回、接続元のグローバルIPアドレスと今日の日付を元に計算を行い、結果を返すおみくじサイトを作りました。計算ロジックは秘密ですが、大したことはしていません(笑)

ある夜、寝る前に「占いって出身地とかでもするよね...インターネットの世界での位置情報ってIPアドレスなわけだから、IPアドレスで占いを作るのって、今どきじゃない!?」と思いついたわけです。まあ、翌朝冷静になって考えると大した思いつきでもない気はしたものの、まあ取り敢えず作ってみるかと思い、作成を勧めたところ「これって占いではなく、おみくじでは?」となった次第です。

(β)としているのは、将来的に一般的なおみくじに書いてある和歌的なものも自動で生成して載せたいなー、と思っているためです。この機能を搭載することができたら、晴れてGAとしたいと思います。今の自分のスキルでは、時間がかかりそうですけどね(笑)

2019年10月28日月曜日

任意のフォーマットの日時を変数に取り込む

PHPで任意のフォーマットの日時データを変数として格納させる。

例えば以下のような変な日時データの場合
2019/Oct/1 02:10:08

$format = 'Y/M/j H:i:s';
$date = DateTime::createFromFormat($format, '2019/Oct/1 02:10:08');

echo $date->format('Y-m-d H:i:s'); #2019-10-01 02:10:08

以下のサイトを参考にさせて頂きました。

DateTime クラスのまとめメモ Qiita
PHPで日付や時刻をフォーマットする(1月1日、1/1など) flatFlag
※「date関数のフォーマット文字列一覧」を参考にさせて頂きました。

2019年10月27日日曜日

公開WEBサーバの証明書有効期限を確認するAPIを公開しました!

新たに証明書有効期限確認APIを公開しました!

これはターゲットのFQDNとポート番号(指定しないと443)を指定すると、設定されている証明書の発行日、有効期限、現在日時から有効期限までの日数を返すAPIとなっています。

将来的に証明書の有効期限切れをメールなどでお知らせしてくれるツールを作ろうと思っているのですが、まあ取り敢えずチェックするところまでをAPIで作っておきました。という感じです。

2019年9月7日土曜日

パスワード生成APIを公開しました!

新たにパスワード生成APIを公開しました!

これは条件を指定するとパスワードを単純にテキストで返すAPIです。また、指定可能な条件は全てオプションとなっており、何も指定しなくても8文字のパスワードを返します。

使い所があるのか、という気もしますが、まあ自分としてはあったら便利だなと思っていたので作っておきました。

ちなみに、条件に誤りがあるとERRORという文字列を返します。単純にテキストを返すAPIにしたかったのでエラーをどう返すのかは悩んだのですが、一旦これで行きたいと思います。