Pages

2015年11月16日月曜日

◯◯毎に存在する大量のコードからマッチング

◯◯毎に存在する大量のコードにちゃんと含まれてるかフォーム値をチェックしたいけどDBに入れるのはちょっと。。

MYSQLでパーティション切って入れてもパーティション数の上限が気になりすぎる。。。

なんて時はDBに入れずにファイルのまま保存してファイル内検索かな?

grep "12345678" master.txt

これだと部分一致しちゃうので

grep -x "12345678" master.txt

でも何かマッチしない。。。

改行コードが LF じゃない。。

って事で保存時に改行コード変換しとく。

cat ./tmp.txt | tr '\r\n' '\n' | tr '\r' '\n' > ./master.txt

とりあえずこれで様子見てみよう。。
他に低コストで良い方法あれば教えてください。


OSコマンドインジェクション にはご注意ください。

2015年6月11日木曜日

wkhtmltopdf をインストール

$ yum --enablerepo=epel wkhtmltopdf

で入れようとしたけど、 X 入れろみたいなエラーが出るので公式サイトからRPM持ってきて入れる事にした。

$ su -

まずは日本語フォントを追加。

# cd /usr/share/fonts/
# wget http://ipafont.ipa.go.jp/ipaexfont/IPAexfont00201.php
# unzip IPAexfont00201.php
# rm IPAexfont00201.php
# fc-cache -fv
# fc-list

wkhtmltopdf をインストール

# wget http://jaist.dl.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
# yum localinstall wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm

テスト
$ wkhtmltopdf http://yahoo.co.jp yahoo.pdf

2015年3月5日木曜日

PHP fgetcsvを使える環境を構築

fgetcsv にはロケールを指定するパラメータがありません。

そこで fgetcsv を実行する前に

setlocale(LC_ALL, 'ja_JP.SJIS');

を実行する。

が、しかし化ける。。
試しにEUC-JPを指定してみるといけている気がするけど、一部文字で化ける。。
そもそもなんでEUC-JP。。

で、コマンドからサーバーのロケールを確認

$ locale -a | grep JP

ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8

SJISが無い。。
CentOS 6 でも 7でも入ってない。。

って事で追加しよう。

$ localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.SJIS

をrootで実行して追加、そして確認

$ locale -a | grep JP

ja_JP
ja_JP.SJIS
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8

そしてfgetcsvの確認。

setlocale(LC_ALL, 'ja_JP.SJIS');
fgetcsv(***);

とても良い感じ♪
SJIS無い、入れれないサーバーだと使えないな。。
しばらくこれで様子を見てみます。

2014年12月11日木曜日

Git PULLした時に既にファイルがあった場合

経緯

app/tmp/ を .gitignore の中で指定していて、ある日app/tmp/sample/data1.txt を追加しました。
ずっとプッシュした気になっていたのですが、できておらず。。

そこで他の人が app/tmp/sample/data1.txt が無い事に気づいたプッシュしてくれました。

その後私がPULLするとこんなメッセージが。。

error: Untracked working tree file 'app/tmp/sample/data1.txt' would be overwritten by merge.  Aborting


内容は結局同じなので、app/tmp/sample/data1.txt を削除してからPULLしたら解決と。。

2014年10月28日火曜日

CakePHP2 セットアップ ライブラリ部分のみサブモジュールとして管理

CakePHPのセットアップ

$ git init
$ git pull https://github.com/cakephp/cakephp.git
$ rm -fr .git
$ rm -fr .gitignore
$ rm -fr lib
$ git init
$ git add .
$ git commit -m 'first commit'

$ git submodule add https://github.com/cakephp/cakephp.git
$ git submodule init
$ git submodule update

$ vi app/webroot/index.php
$ vi app/webroot/test.php

//define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');

define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'cakephp' . DS . 'lib');

$ vi app/Console/cake.php

$install = $root . DS . 'lib';

$install = $root . DS . 'cakephp' . DS . 'lib';


$ git add .
$ git commit

$ git remote add origin [repository]
$ git push -u origin master

プラグインの追加

$ git submodule add git://github.com/cakephp/debug_kit.git app/Plugin/DebugKit
$ git submodule add git://github.com/CakeDC/search.git app/Plugin/Search

Followers