Pages

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%;
}

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

2016年5月29日日曜日

Chrome で Selenium を利用する

FireFox の拡張機能で提供されてる Selenium を Chrome でも使いたい。。

けどまだ Chrome ウェブストア の 拡張機能(https://chrome.google.com/webstore/category/extensions) で提供してくれない。。



しばらく待ってたけど、まだ提供されないので、もう 検索したら良く出てくる WebDriver 入れてFireFoxの拡張機能から実行するってやつ入れちゃいました。。


簡単に手順まとめ

  1. ダウンロード
  2. 設置
  3. サーバー起動
  4. FireFox起動
  5. テストケース実行

手順


ダウンロード

Selenium - Downloads

http://www.seleniumhq.org/download/


必要なファイル
  • Selenium Standalone Server (version 2.53.0)
  • The Internet Explorer Driver Server (version 2.53.1)
  • Third Party Drivers, Bindings, and Plugins > Google Chrome Driver > 2.21 > chromedriver_win32.zip (version 2.21)
※ ()内は自分が入れた時のバージョンです。

設置

設置はファイルをどこかに置くだけの簡単な作業

今回は D:\app\selenium\server というフォルダーを作成して、そこの以下を保存。


  • selenium-server-standalone-2.53.0.jar
  • IEDriverServer.exe
  • chromedriver.exe

サーバー起動

コマンドプロンプトを立ち上げて、以下を実行するとサーバーアプリが起動する。


  D: \
  cd \app\selenium\server \
  java -jar selenium-server-standalone-2.53.0.jar -Dwebdriver.ie.driver=.\IEDriverServer.exe
これでサーバーは起動する。


FireFox起動

FireFox を起動して Selenium を立ち上げる。

※ Selenium 立ち上げたらFireFoxのブラウザ側は閉じてもOK。


テストケース実行

後は、いつも通りテストケースを実行すると、Chromeのウィンドウが新規作成されて、実行されていく。

何か問題があれば、Seleniumのログとコマンドプロンプトを確認する。



Followers