Pages

2017年11月2日木曜日

2017年6月19日月曜日

fgetcsv で取り込めない問題発生

"能","<p>
あ</p>",""

上記のような3列で1行のSJISのCSVがあった場合、 SJISのロケール追加して、

$ locale -a | grep -i ja
ja_JP
ja_JP.SJIS
ja_JP.eucjp
ja_JP.sjis
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
japanese.sjis

という環境であっても、

setlocale(LC_ALL, 'ja_JP.SJIS');

をした後に、fgetcsv() を利用して正常にCSVが取り込むことができない。
別の方法もあった気がしたけど、忘れてしまったのでので今回対応方法をメモ。
考え方としてはiconvコマンドを利用して、SJISファイルをUTF8ファイルに変換してからPHPで取り込むという方法。

exec("iconv -f sjis-win -t utf-8 " . $path . " -o " . $path);
$handle = fopen($path, "r");
$row = fgetcsv($handle, 1024, ',', '"');

2016年11月22日火曜日

Preloaded HSTS を登録する

HSTS に対応してもHTTPで接続してレスポンスで判断はする。
ブラウザ側でできれば最初から判断してほしいって事で Chrome 側で判断してもらうには

HSTS (HTTP Strict Transport Security) の導入

を見ると https://hstspreload.appspot.com/ から登録すれば良いみたいなので早速登録してみました。

確認はChromeブラウザで chrome://net-internals/#hsts の Query Domain でOKみたい。

2016年6月28日火曜日

CakePHP3 フォーム利用せずに hasMany 指定のテーブルに追加して save する

何か意味不明なタイトルになりましたが。。

今回シェル内でhasManyに指定されたTagsにデータを追加する事をsave一つでやりたかったんです。

何かしっくりこない気がまだしていますが、とりあえずこんな感じかな。。
$article = $articles->get(1, ['contain' => 'Tags']);

$data = $article->ToArray();
$data['tags'][] = [
  'name' => 'Tag Name',
];

$articles->patchEntity($article, $data, ['associated' => 'Tags']);
$articles->save($article);

2016年6月3日金曜日

iOS PowerPointファイルをsafariで開いて戻るとフォントが大きくなっちゃった!

そう、そんな時はこれ!

body {
  -webkit-text-size-adjust: 100%;
}

上記を指定してあげれば対応できました。

Followers