スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Cache_Liteの有効時間が想定よりも長いのはナゼ??

Cache_Liteというキャッシュ機能を組み込んだ既存の関数を使っていたのですが。


キャッシュ生成のロジックが、

$cache = new Cache_Lite(array('cacheDir' => '/var/tmp', 'lifetime' => 600));

↑こんな感じになっていたので、キャッシュの有効時間は600秒だと思っていました。

だから、10分ちょっと経った後でもう一回呼び出したら、
古いキャッシュは無効になって、新しい情報に更新されるはずだ・・・と。


ところが。

実際は、10分経っても20分経っても、古いキャッシュが残ったまま・・・(><;)


なんで!? 

・・・と思って、マニュアルを見直してみると、、、

有効時間を指定するオプションのスペルが"lifeTime"!!


まさか、lifetimeの"t"が小文字だから、設定が効いてないのか!??


そんなわけで、

$cache = new Cache_Lite(array('cacheDir' => CACHE_DIR, 'lifeTime' => 600));

↑に修正して、再確認。


すると・・・

10分後に処理 → 新しいキャッシュが作成

という想定通りの動きをするようになりました。


原因がわかってみれば、しょーもないのですが。

たった1字のスペルミスで想定外の動きになるんだから、恐ろしいもんです(--;)


ちなみに、"lifetime"で指定していたときは、
デフォルトの3600秒が有効時間になっていたようです。

う〜ん・・・10分のつもりが1時間になってたのか。。。




スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : Cache_Lite,有効時間,pear,lifetime

PHPでコマンドを実行する。execとshell_exec

PHPのプログラムから、コマンドを実行する方法2種類をメモ。


(1)exec を使って、lsコマンドを実行する

 exec("ls", $output, $res);
 print_r($output);

 [表示結果]
 Array([0] => file1
    [1] => file2
    [2] => file3)


(2)shell_exec を使って、lsコマンドを実行する

 $output = shell_exec("ls");
 print_r($output);

 [表示結果]
 file1 file2 file3


なるほど、コマンドの実行結果の取り方が違うってことですね。


execだと結果を配列で取得、shell_execだと結果を文字列で取得。


後の処理によって、使いやすい方を使い分けると良さそうですね〜(^^)




テーマ : プログラミング
ジャンル : コンピュータ

tag : PHP,コマンド,exec,shell_exec

全角スペースをtrimしたい。

PHPで作ったアプリのテストをしていたのですが。

画面から入力した値の末尾に全角スペースがあった場合、挙動がおかしいことに気付いたので。

「trimすりゃいいんじゃね?」

と軽く考えていたところ・・・


trimだと、全角スペースは削除してくれないらしい・・・(><;)

という面倒くさい事実に行き当たりました。


仕方ないので、こんなかんじでやってみたら、何とか思った動きをしてくれました。

こんなの↓

 trim(mb_convert_kana(入力値, "s"));



まず、mb_convert_kanaで入力された全角スペースを半角スペースに変換。

半角スペースになったので、trimでOK〜・・・ってことですかね。


PHP初心者やから、不具合あると焦るわ・・・(--;)


テーマ : プログラミング
ジャンル : コンピュータ

tag : PHP,trim,全角スペース

条件文中の「?」の意味って

非常に今さらなのですが。

最近になって、ようやく・・・


三項演算子の意味がわかりました(><;)


三項演算子ってこんなやつ↓

$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];


※PHPマニュアルより参照


他の人が書いたPHPのソースを読んでいて遭遇したのですが。


私・・・今まで、VBとか・・・さらにマイナーな言語とかとか・・・そんなのばっかりやってたもんで。


お恥ずかしながら、上記の式の「?」の意味がわからなかったのです・・・。


で、調べたところ。


   (式1) ? (式2) : (式3)

→ 式1 が TRUE の場合に 式2 を、
  式1 が FALSE の場合に 式3 を値とする



という意味だということに、辿り着きました。

「if〜 else〜」みたいなもんですね。



はぁ〜。謎が解けてスッキリしましたぁ(^^)






テーマ : プログラミング
ジャンル : コンピュータ

tag : 三項演算子 PHP

PHPの配列をORDER BYみたいにソートする

最近、PHPを勉強中なのですが。


連想配列をSQLのORDER BYみたいにソートできないものかと思い、試してみました。

ちょっと確認不足なのですが、下記のような方法で出来るみたい(?)です。

// たとえば、こんな配列があったとして・・・
$member = array(
       array('team' => 'A', 'name' => 'Maeda', 'rank' => '1'),
       array('team' => 'K', 'name' => 'Oshima', 'rank' => '2'),
       array('team' => 'B', 'name' => 'Kashiwagi', 'rank' => '3'),
       array('team' => 'A', 'name' => 'Shinoda', 'rank' => '4'),
       array('team' => 'B', 'name' => 'Watanabe', 'rank' => '5'),
       array('team' => 'A', 'name' => 'Kojima', 'rank' => '6'),
       array('team' => 'A', 'name' => 'Takahashi', 'rank' => '7'),
       array('team' => 'K', 'name' => 'Itano', 'rank' => '8'),
       array('team' => 'A', 'name' => 'Sashihara', 'rank' => '9'),
       array('team' => 'S', 'name' => 'Matsui', 'rank' => '10'),
       array('team' => 'K', 'name' => 'Miyazawa', 'rank' => '11'),
       array('team' => 'A', 'name' => 'Takajo', 'rank' => '12')
      );

// teamを昇順に並べ、teamごとにrank昇順で並べる
foreach ($member as $key => $row) {
   $teams[$key] = $row['team'];
   $ranks[$key] = $row['rank'];
}

array_multisort($teams, SORT_ASC, $ranks, SORT_ASC, $member);

※結果はこんなかんじ↓
 team name rank 
AMaeda1
AShinoda4
AKojima6
A Takahashi 7
ASashihara9
ATakajo12
BKashiwagi3
BWatanabe5
KOshima2
KItano8
KMiyazawa11
SMatsui10


やっぱり、チームAは強いですね(^^)






テーマ : プログラミング
ジャンル : コンピュータ

tag : PHP,array_multisort,ソート,ORDER BY

プロフィール

コリ

Author:コリ
学生時代の専攻は歴史。
根っからのアナログ人間なのに、なぜかSIerに就職し、システム関係のお仕事をしています。
一時期、花屋に転職してIT業界を脱出しようとしたものの、結局出戻ってきてしまいました。
システム・WEB関連の気付いたことを何でもアリで書いています。最近は趣味(?)のリラックマについての記事が増えてきました…疲れてるんでしょうか??

※リンクフリーです。少しでも誰かのお役に立てれば幸いです。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
おすすめ書籍

プロになるためのWeb技術入門
Web全般の理解におすすめ。
すごい分かりやすいです。


2014-15年版 ネットショップ検定公式テキスト ネットショップ実務士レベル1対応
ネットショップ運営の一連の流れがまとめられています。


2015 情報セキュリティスペシャリスト「専門知識+午後問題」の重点対策
記述問題の解答テクニックに特化した参考書。


応用情報技術者試験 午前 平成26年度版
午前対策はひたすら過去問を
解くことだと思います。


リラックマ ここにいます
リラックマ絵本の新刊。
今回は手書き風。


リラックマ 4クママンガ 6
新作出た!!


検索フォーム
RSSリンクの表示
instagram
twitter
おすすめ
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。