PHP
「○○しますか、それとも死にますか?」 …という意味では無いようです(´・ω・`)
ローカルのzipファイルをFTPサーバに送信するという内容です。
mb_send_mail関数を使いました。
準備するまでが少々面倒ですが、その後は比較的楽かも(・∀・)
エクスポート時にはZIPファイル等に圧縮できるため、それほど問題は無いのですが、 インポート時にはZIPファイルを受け付けてくれないので、巨大データを扱う時に 困ってしまいました(´・ω・`)
PHPには三種類の文字列置換関数が備わっていて、処理速度順に並べると、 strtr str_replace preg_replace …となるようです。
もう7月…一年の半分が過ぎてしまいました(´・ω・`) 最近、月日の経つのが早く感じます… さて本題。 社内サイトを、あるサーバから別のサーバに丸々移動させた時のこと。 (サイトはPHPで書かれていて、DBにはMySQL) 移動後にそのサイトにログインを試みたとこ…
「WindowsにLAMP環境」 …ってのが、あまり納得イカナイというか嬉しくないんですが(´・ω・`) (世の中のPCの圧倒的多数がWindowsなので仕方ないか…) ※Linuxベースの「LAMP」環境に対して、Windowsベースだと「WAMP」環境と言うんですね…
シンボリックリンク先に配置したZendFrameworkのプロジェクトが動かない、 というお話(´・ω・`)
以下のようなエラーが出て、設定がすんなり進みませんでした(´・ω・`) Smarty error: unable to read resource: Invalid controller specified (css)
Apacheで、どのように構成されているのか、今まで全く 知らなかったのですが(´・ω・`)
ApacheのログからリクエストURLを抜き出し、 $arrayLogBaraBara = explode("/", $logRequest); …で、スラッシュごとにそのリクエストURLをバラバラにしました。 ところが、上記でバラバラにした要素の数が、「grep -c 」でカウントした数より、 1つ少なかっ…
該当日付の含まれるファイル名をで検索。 実行するコマンド⇒「grep -l 日付 アクセスログの場所」 「1」のファイルの内容を日付ごとに中間ファイルとしてまとめる 実行するコマンド⇒「grep 日付 | gzip >> 中間ファイル」 中間ファイルに対して、時間ごと…
以前のエントリーで、array_multisort関数を使った並び替え方法を書きましたが、 他の方法にもチャレンジしてみました。
Woo〜〜♪ Baby I love your way〜〜♪ Everyday, yeah, yeah〜〜♪ exec関数を使えば、PHPのプログラムからUnix系コマンドを実行でき 戻り値も取得できるのですが、今日はそれに悩まされました(´・ω・`)
Apacheのアクセスログ解析で若干ハマり気味です…(´・ω・`) アクセスログファイルをfopenして一行ずつ解析…としていると、 巨大なログファイルを解析する時にハードに負荷がかかりすぎて危険なので、 grepを使って解析したいログをある程度絞ることに。
CSVファイルのダウンロードダイアログを出す方法で、サーバ上のCSVファイルを ダウンロードすると、ファイル内に余分な情報が一緒に出力されていました…(´・ω・`)
昨日のエントリーで書いたコマンドに少々肉付けした、 grep -v -e '.*¥/choo1¥/.*HTTP.*' -e '.*¥/choo2¥/.*HTTP.*' /home/choo/logs/choo_log* | zgrep '.*¥[13¥/May¥/2009¥:0[0-9].*'| grep '.*HTTP.* 200 .*' > choo.txt というコマンドを、exec…
PHPプログラム上で、大容量ファイルから文字列を抽出するなら、 「grepを使え」 と言われました(´・ω・`) PHPのexec関数を使えば、Linuxのコマンドも打てますし…
業務で使った、文字列に関する便利な関数を紹介します(・∀・)
$ php -v とすると、 PHP 5.2.6 (cli) (built: Aug 1 2008 21:46:15) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies のように、インストールされているPHPのバージョン情報等が表示されます。 こ…
とあるテスト環境に、更新したファイルをtarで固めたものを持って行って 展開したところ、 relation テーブル名 does not exist というエラーが出るようになりました。テーブル名に大文字が含まれている場合に発生することがあるようですが、 私の使っている…
array_push⇒配列の最後に要素を追加する。 array_unshift⇒配列の最初に要素を追加する。 array_push($array_data, $value); array_unshift($array_data, $value); 書き方も同じ… 「1」については以前から知っていて実際に利用したこともあったのですが、 「2…
とあるデータをCSV出力しておく。 とある画面で特定のリンクをクリックすると、そのCSVファイルがダウンロードできる。 …という機能を実装したのは良いのですが、文字コードの問題が(´・ω・`) 「1」のファイル出力時は「EUC-JP」なので、「2」でダウンロード…
「PHPのことだから、CSBCSV出力の標準関数も備わってるのかなぁ」 と思って調べてみたところ、案の定、ありました(笑) その名も…fputcsv関数!…ホンマなんでもアリですよね(´・ω・`) ※PHP5以上でないと使えません。 ↓こんな感じで使います(配列の要素をCSVフ…
「1アクション1テンプレート」 を原則に開発を行っているのですが。 例えば、ある画面でCSVファイルをダウンロードしたいと思ったときに、 ダウンロード用のアクションを用意しても、そのアクションに対応するテンプレートを わざわざ用意するまでも無いです…
Smartyでは、 {foreach from=$item item=val name="loopname"} のようにループに名前が付けられるのですが、これで「Smarty予約変数」が使える ようになります。 first last iterate …etc. {if $smarty.foreach.loopname.first}{$val} {elseif $smarty.forea…
なんとSmartyでもnumber_format関数が使えます(・∀・)
個人的には「foreach」よりも「for」のほうが構文が見やすくて好きなのですが、 要素数の比較的多い配列に対して何か処理を行う時は、foreachのほうが速い ようなので、使ってみました。 $pv_data = array("ymdh"=>20090406, "sum" => 99); $pv_data = array…
「数種類の例外が発生する場合、例外ごとにエラーメッセージを変えたい」 という要望があったので、以下のような方法を列挙してみました。 フラグを立てることによる分岐。 例外が発生する処理ごとに、それぞれ「Exceptionをcatchする」処理を入れる。 Excep…