【Git】「core.autocrlf」の値を編集する。

めも。

git config --global core.autocrlf input
# or
git config --global core.autocrlf true
#or
git config --global core.autocrlf false

的な感じ。

 

【Git】.gitattributesファイルとautocrlfの挙動メモ。

gitリポジトリからクローンした瞬間にファイルが「modified」になる現象でハマったので調べた。

「.gitattributes」が存在せず、「core.autocrlf」の値が「false」に設定されているリポジトリの場合。

  1. 改行コード「LF」のファイルを追加すると、改行コード「LF」のままコミットされる
  2. 改行コード「CRLF」のファイルを追加すると、改行コード「CRLF」のままコミットされる
  3. 改行コード「LF」のファイルをチェックアウトすると、改行コード「LF」のままチェックアウトされる
  4. 改行コード「CRLF」のファイルをチェックアウトすると、改行コード「CRLF」のままチェックアウトされる

「.gitattributes」が存在せず、「core.autocrlf」の値が「true」に設定されているリポジトリの場合。

  1. 改行コード「LF」のファイルを追加すると、改行コード「LF」のままコミットされる
  2. 改行コード「CRLF」のファイルを追加すると、改行コード「LF」でコミットされる
  3. 改行コード「LF」のファイルをチェックアウトすると、改行コード「CRLF」でチェックアウトされる
  4. 改行コード「CRLF」のファイルをチェックアウトすると、改行コード「CRLF」のままチェックアウトされる
  5. 改行コード「CRLF」のファイルをチェックアウトし、編集後コミットすると改行コード「CRLF」のままコミットされる

「.gitattributes」が存在しており「eol=crlf」が指定されている場合、「core.autocrlf」の値にかかわらず下記の挙動になる。

  1. 改行コード「LF」のファイルを追加すると、改行コード「LF」のままコミットされる
  2. 改行コード「CRLF」のファイルを追加すると、改行コード「LF」でコミットされる
  3. 改行コード「LF」のファイルをチェックアウトすると、改行コード「CRLF」でチェックアウトされる
  4. 改行コード「CRLF」のファイルをチェックアウトすると、改行コード「CRLF」のままチェックアウトされる
  5. 改行コード「CRLF」のファイルをチェックアウトし、編集後コミットすると改行コード「LF」でコミットされる

ああああああぁぁぁぁぁぁめんどくさいぃぃぃぃ!!!

めんどくさい変換とかしないでもうそのまんま扱ってくれれば十分だよ。
ってことで自分は「.gitattributes」を削除して「core.autocrlf」を「true」で安定。

 

【Javascript】改行コードをbrタグに変換する。

PHPでいうnl2br。

str.replace(/[\n\r]/g, '<br>');

 

【秀丸】秀丸エディタの正規表現置換で、一致部分を引用する方法。

めも。

例のごとく普通に「$1」とかで参照出来るのかと思ってたら、秀丸は「\1」なのね。

例えば。

^.*abc(.*)hij$

とかやった時に。

\1

で参照する。

なぜバックスラッシュなのか。

 

【Eclipase】隠しファイルを表示する方法。

めも。

「.htaccess」や「.gitignore」などを表示させたい場合。

1, Explorerのプルダウンメニューを展開する。
※下記画像参照

1

2, 「Filters…」をクリック

2

3, 「.* resources」のチェックを外して「OK」を押す。

3

以上で完了!簡単だね!

 

【PHP】文字列内から電話番号(と思わしき数列)を抽出する。

必要だったので作成。
※基本的に国内電話番号のフォーマット用

function getTelNumber($html) {
	// 全角スペースを半角に、全角数字を半角に
	$_source = mb_convert_kana($html, 'ns');
	// 置換文字列の定義と処理
	$replacePts = [
		['from' => ['(', ')'], 'to' => ['(', ')']],// 全角括弧を半角に
		['from' => '&nbsp;', 'to' => ''],// スペースエンティティを削除
		['from' => ['ー', '―', '‐', '?'], 'to' => '-'],// ハイフン(と思われるもの)を置換
	];
	foreach($replacePts as $pts) {
		$_source = str_replace($pts['from'], $pts['to'], $_source);
	}
	// 電話番号のパターンを定義
	$telNumberPts = [
		'/0\d{5}-\d{4}/x',// ハイフン1個
		'/0\d{1,4}-\d{1,4}-\d{4}/x',// ハイフン2個
		'/0\d{1,4}\(\d{1,4}\)\d{4}/x',// 中間括弧パターン
		'/\(0\d{1,4}\)\d{1,4}-\d{4}/x'// 先頭括弧パターン
	];
	$return = [];
	foreach($telNumberPts as $key => $pts) {
		preg_match_all($pts, $_source , $m);
		if(!empty($m[0])) {
			$return = array_merge($return, $m[0]);
		}
	}
	return array_unique($return);
}

上記関数の引数に調査したい文字列を渡せばOK。
HTMLをぶん投げる想定で作成。
まだまだ甘いと思うので、今後随時アップデート予定。

 

【PHP】str_replace()の挙動めも。

str_replace()に配列を渡した際の挙動が面白かったのでメモ。

下記コードを実行すると結果は「B」ではなく「F」となる。

$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

上記の場合「A」の置換文字列としてマッピングされているものは「B」であるが、
「B」に置換されたあと、すかさず「C」に置換されるため、
この挙動が連鎖していき最終的に「F」となる。

str_replace()は左から順番に処理されていくんだね!

 

【Javascript】Javascriptにて文字列のピュニコード変換を行う。

下記ライブラリを用いる。

https://github.com/wealandwoe/punicode.js

要求ファイルは読み込み方などはリポジトリの「punycode.html」を参照されたし。

// ピュニコード変換を行う
var encoded = Punycode.encode('日本語');

// ピュニコードから文字列に復元する
var decoded = Punycode.decode(encoded);

これは便利!神ライブラリ!

※ちなみにURLとして利用したい場合は変換結果に「xn--」のプレフィックスを付けなければならないので注意。