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無い、入れれないサーバーだと使えないな。。
しばらくこれで様子を見てみます。

Followers