Note to Self

自分用のメモ置き場

Gitでマージ済みブランチを一括削除する

削除する前に必ず対象ファイルを確認する
grep部分で対象を制限できる

マージ済みのリモートブランチ一覧を一括削除する

git branch --remote --merged | grep -vE '^\*|master$' | tr -d 'origin/' | xargs -I % git push --delete origin %


マージ済みのローカルブランチ一覧を一括削除する

git branch --merged | grep -vE '^\*|master$' | xargs -I % git branch -d %

個人的環境構築メモ

随時更新予定

データベース管理

ターミナルソフト

その他開発支援

  • WinMerge
    ファイルやフォルダを比較して差分を把握する
広告を非表示にする

JavaScriptで数字を0埋めする

JavaScriptで数字を0埋めする

slice()メソッドを使用して0を含めて文字列を作成する

function zeroPadding(num, length)  {
  return ('0000000000' + num).slice(-length);
}

console.log(zeroPadding(1, 2));  // 01
console.log(zeroPadding(98, 3)); // 098

phpinfo()をコマンドラインで実行する

phpinfo()をコマンドラインで実行する

よく忘れるのでメモ

<?php

php -r 'phpinfo();'

?>

※2017/10/11 追記
単純に、以下のオプションでも実行できる

 $ php -i

PHPのmkdir() 関数でエラーが発生した原因と対応方法

PHPのmkdir() 関数でエラーが発生した原因と対応方法

PHPのmkdir() 関数を使ってディレクトリを作成しようとした所、以下のようなエラーが発生した

<?php

mkdir($directoryPath, 0777, true);

PHP Warning:  mkdir(): Permission denied in ~

?>


作成したいディレクトリの親ディレクトリに、PHP を実行している httpd の実行権限がなかったのが原因
権限を付与すると正常に動作した

MySQLで半角カタカナを全角に変換する

MySQLで半角カタカナを全角に変換する

便利な関数は無いため、ストアドファンクションを作成し対応

DROP FUNCTION IF EXISTS kanaToKANA;

DELIMITER //

CREATE FUNCTION kanaToKANA (data TEXT) RETURNS TEXT DETERMINISTIC
BEGIN
  DECLARE kana1_len, kana2_len INT;
  DECLARE kana1_h VARCHAR(62) DEFAULT 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンッャュョァィゥェォ ー。「」、・';
  DECLARE kana1_z VARCHAR(62) DEFAULT 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンッャュョァィゥェォ ー。「」、・';
  DECLARE kana2_h VARCHAR(52) DEFAULT 'ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ';
  DECLARE kana2_z VARCHAR(26) DEFAULT 'ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ';

  SET kana1_len = CHAR_LENGTH(kana1_z);
  SET kana2_len = CHAR_LENGTH(kana2_z);

  WHILE kana2_len > 0 DO
    SET data = REPLACE(data, SUBSTRING(kana2_h, kana2_len * 2 - 1, 2), SUBSTRING(kana2_z, kana2_len, 1));
    SET kana2_len = kana2_len - 1;
  END WHILE;

  WHILE kana1_len > 0 DO
    SET data = REPLACE(data, SUBSTRING(kana1_h, kana1_len, 1), SUBSTRING(kana1_z, kana1_len, 1));
    SET kana1_len = kana1_len - 1;
  END WHILE;

  RETURN data;
END;
//
DELIMITER ;


-- 正しく変換できるか確認
SELECT hogeKanaName, kanaToKANA(hogeKanaName) FROM t_hoge;

-- 対象レコードを更新
UPDATE t_hoge SET hogeKanaName = kanaToKANA(hogeKanaName);

Linuxで30分以内に変更したファイルを削除する

Linuxで30分以内に変更したファイルを削除する

find を使ってファイルを特定する

find . -type f -mmin -30 -exec rm -f {} \;

※いきなり実行するのは危険なので、必ず対象ファイルを確認してから実行すること