Tagged ‘PHP’

GDを使って激安な価格表示その2

前回の価格表示を画像に埋め込む事にした。
前に作った価格.comとconeco.netとベストゲートとベストプライスの比較サイトを一括でチェックするやつに追加する感じで入力していくとブログに貼るソースデータを作れる様にしたかったので、それを更にハッティンさせて画像をトリミングしてその中に価格表示を埋め込む事にした。
今回の肝は「jsCropperUI」というやつだ。
demo
半年以上前から存在は知ってたんだけど「いつかやろう」とほったらかしていた。
どうも、AJAXとかオープンソース系は乗り気になれないんだけど。こんなの自分では作れないのでトリミング座標はcropperに任せて作ったんだけどずっとjavascriptエラーがでてる。
深刻なエラーではないのか普通に動作はするんだけど気になる。
エラーの場所を見るとデバッグみたいな英語が書いてあったので「いらないか」と思って消したら、エラーがでなくなった。
http://uda2.com/blog/price/
まだ、細かいトコ詰めてないんで動作が怪しいけど、これのおかげてそんなに安くないのについつい載せてしまった。
あと残る問題は見に来る人が少ない事だけだ・・・・

GDを使って激安な価格表示

どうも心躍る!期間限定激安高校「大特価情報部」の価格表示があんまり激安感が無かったので激安な表示にすることにした。
参考にしたのは激安で有名なドン・キホーテのチラシだ。
なんか、いい感じで数字が重なって激安感が出てる。
チラシの数字部分とカンマと円をトレースして、赤黄の部分と黒白(背景が白なんで白はイマのところ意味無い)の部分の各2枚のpngを作った。
赤白
黒白
↑こんな感じの画像。
そんで、PHPのGDってのを使って
白いベースを作って
黒白の画像を左からつめつめで乗せていって
次に赤黄の画像を左からつめつめで乗せていって
最後に点を打っている。
画像があればその画像を表示してなければ作る感じなんで、なんかの間違いで大人気ブログになっても大丈夫なはず。
http://uda2.com/price/priceimage/19800.png
赤いところの数字をいろいろ変えてみて。
(0~999999円まで対応)
これ作るのに半日かかってしまった、一日100PVも超えられないページには豪華すぎる価格表示!
どうっすか?

DNRH-001にVINEその5

宣言通り、セキュリティソフトを入れることにした。
まず、アンチウイルスのソフトだけど何がいいのかよく分からんので毎度のVine Linuxで自宅サーバーに載ってるF-Prot AntivirusてのとClam AntiVirusてのを入れる事にした。
(正直2つもいるのかも分からんが・・・)
F-Prot AntivirusはWindowsマシンで落としてからファイル共有(SAMBA)経由でVINE側に送ってインストールした。
なぜか個人情報を入れる事無くダウンロードが出来インストールをしてウイルス定義を更新したが既に最新版で何も起こらなかった。
自動起動等の処理も指示通りやったら、問題なく登録できた。

続いてClam AntiVirus。Vine Linuxで自宅サーバーでは/etc/apt/sources.listを弄る様に書いてたが既に指示通りになってたので保存せず閉じる。
それ以外はこれまた指示通りやったらすんなりインストールと自動起動等の処理も完了。

あとは、chkrootkitってのを導入してみた。正直、何をしてくれるのかよく分からんけど守ってくれそうだ。
これもすんなりインストールが終わった。

あまりに早く終わったのでphpMyAdminを入れてみた。

(さらに…)

DNRH-001にVINEその4

家にはlink stationがあり「Link de 録!!」という素敵な連携プレイでファイル共有だけでなくftpも録画も賄ってたのでDNRH-001の居場所も無く、置き場所も仮の場所で微妙に邪魔で電源切りっぱなしだったんだけどようやく置き場所だけ決まったんで何かしようと検索してたら。
ファンレスPC DNRH-001ってどうよ?Part2ってのを発見!って既に2スレ目に突入してる。
結構人気あるんだねDNRH-001って。
「そうそう、熱いんだよね」とか「そうそう、意外と重いんだよね」とか「そうそうOEMだから他のパソコンにXP入れられないだよね、オレまたOS買っちったよ」思いながら見てたらwiki(まとめサイト)を発見。
( ゚д゚) ・・・
(つд⊂)ゴシゴシ
(;゚д゚) ・・・
(つд⊂)ゴシゴシゴシ
(;゚ Д゚) …!?
DNRH-001のwikiにこのブログが掲載されてる~~~。
DNRH-001目当てで見に来てくれた人すいません、そんなに役に立ちそうな事は書けません。

(さらに…)

PHPの日本語処理2

気になる仕事50職の年収公開SPを観て自分との年収の差に愕然としながら、PHPを弄ってるとあることに気づいた。
mbereg_replace
ん?「mb_ereg_replace」で無くて?
もしかしたら誤記してしまってたのか?
と一瞬青くなったがよく考えてみると何の問題もなくずっと動いてる。
調べてみると「mbereg_replace」というのもあるそうだ。PHPを始めた頃よく参考にしてたSAK 図書館でmbereg_replaceを使ってたんでそのままこの記述にしてたんだろう。
それでも気になるので更に調べてみるとれぶろぐに「mb_ereg 系の関数は PHP 4.2.0 以降でないと使えないことが判明。」とあった。
前回、「i18n_」系の関数の為に処理を追加したのに「mbereg_」系でも処理を追加しなくてはならないのか~?
あ、よく考えるとオレってオープンソースなの作った事無いから、その都度サーバーに合わせて修正すればいいんやった。
ま、とりあえず「mb_ereg_replace」に統一しときますか。

いろんな空白

PHPに関わらず大抵の言語で$a==""ってすると未定義のものもNULLのモノもTRUEを返す。
そこで調べてみた。
if ($a=="") print "true";
$aが""の場合だけでなく未定義、NULL、0、"0"、FALSE、array() なども"true"を返す。
下記も同様の動きをする。
if (!$a) print "true";
if (empty($a)) print "true";

文字列の検索

文字列の検索する際に使う関数の速度を比較してみた。
preg_match : 0.156914ms
→ preg_match (“/”.$pattern.”/”, $subject )
mbereg : 0.198855ms
→ mbereg ($pattern, $subject )
strpos : 0.093295667ms
→ strpos($subject ,$pattern) !== false
mb_strpos : 0.226389333ms
→ mb_strpos($subject , $pattern) !== false
(3回の平均)
当然だけどstrposが一番、
ただmb_strposが遅いのが以外だった。
mberegとmb_strposを比較してもmb_strposの方が遅い、
ただ、今回のテストでmberegはコンパイルエラーが出た。
再読込すると直ったので原因はよく分からない。
数十回に一回ぐらい同じファイルなのに検索結果が違うときがある。
これも再読込すると直る。
負荷をかけすぎなのかもしれないがロリポは何か挙動がおかしい気がする。
(XREAは偶に表示できなくなるけど・・・)
本格的に運用するならもう少し高価なサーバーの方がいいのかもしれない。

PHP:配列の検索

配列の中を検索する際の関数としてarray-search
を使っていたら、テスト環境(PHPのバージョンが違う)で返す値が違うことが発覚。
いちいちテスト時とアップ時を変えるのが面倒だなと思ってたら
in-arrayを使ったら解決した。
in-arrayもPHPのバージョンにより微妙な違いがあるらしいけど今のところ無問題。