2010-01-01から1年間の記事一覧
Oracleで自分のユーザーが所有しているテーブルのDDL文を一括で出力するPHPスクリプトを作ってみました。 DDLについてはSQLで取得が可能なので、SQL Plusから出力することも出来るのですが、今回はテーブル毎にファイルを分けたかったので、PHPで実装してみ…
HTML等をgitで管理していると、サーバーへのアップロード用のファイルとしてコミットした差分のファイルだけを抽出したい事があります。 「git diff」で差分の表示は出来るのですが、ディレクトリ構造を保持した状態でのファイル抽出みたいな事は出来ないよ…
特定のディレクトリの中から特定のピクセル数以上の画像ファイルを抽出&リストアップするperlスクリプトです。 WEBサイト等でドキュメントルート以下の画像サイズを知りたいときや、○○ピクセル以上のサイズの画像を抜き出して画像サイズを変更する場合等に使…
最近rsyncを使う機会があったので、備忘録として書いておきます。 rsyncとは? rsync は、ファイル・ディレクトリのバックアップやミラーリングを行うコマンドである。ミラーリングやバックアップを行うだけなら cp コマンドでも実現可能だが、rsync コマン…
mod_rewriteを使用してクエリ文字列(URLパラメタ)があるURLを変換してリダイレクトしようとしたときに少しハマリかけたので、備忘録として書いておきます。 今回リダイレクトしたURL 今回は、以下の旧URLから新URLにリダイレクトさせるケースでやってみまし…
diffとpatchコマンドを使うとファイルの変更を別のファイルに簡単に適用することができます。 例えば、サイトでWEBサーバーを複数台で運用していて1台のWEBサーバーに行った設定ファイルの変更を他のサーバーに適用するときなどに使えます。 基本的な作業の…
Apacheで.htaccessを使ってPCサイト/携帯サイトの振り分けを行う方法をまとめてみました。 ユーザーエージェントでの振り分け 携帯電話ブラウザからアクセスされた場合、ユーザーエージェントとして「DoCoMo」「KDDI」「SoftBank」などが含まれています。 こ…
圧縮/解凍コマンドって結構使うことが多いのですが、使い方を忘れることが多いので、よく使うコマンドをまとめてみました。 tar.gzで圧縮(tarアーカイブしてgzipで圧縮) tar.gzで圧縮する場合は、「tar」でファイルをまとめた(アーカイブした)ものを、パイプ…
以前に、 PHPセッションをDBで管理 - OracleでのAutoIncrement用テーブルを作成編 PHPセッションをDBで管理 - PHPセッション管理のコールバック関数を設定編 というエントリを書きましたが、その時に使用したPHPから「OracleのCLOB型」にデータ登録をした場…
古いサーバーなどの場合、「GPG(GnuPG)」ではなく「PGP」を使用していたりします。 その場合に、鍵自体は変更せずに「PGP」の公開鍵をそのまま「GPG(GnuPG)」に移行するのをやってみました。 ※鍵のセキュリティレベルなどはあまり意識していません。その辺の…
getElementByIdとgetElementsByNameってよく使い方を間違えます。(私だけかもですが。) ということで、基本中の基本のgetElementByIdとgetElementsByNameの使い方をまとめてみます。 ※「getElementByName」では無く「getElementsByName」だってところがち…
PHPで処理に時間のかかるスクリプトを実行すると以下のようなエラーメッセージが表示される場合があります。 Fatal error: Maximum execution time of 60 seconds exceeded (日本語訳 -> 致命的な誤り: 超えられていた最大60秒の実行時間) 簡単に言うと、「6…
サイトからファイルをダウンロードさせるには、「
JavaScriptのreplaceの第2引数には関数(function)を使用することが出来ます。 その簡単な使い方と簡単な説明です。※ずっと前にも一度書いたことがあったのですが、読み返したときに意味不明状態になるような内容だったので、情報を整理して改めて書いていま…
.htaccessを使って、HTTPでアクセスされたページをSSLでリダイレクトする方法と、SSLでアクセスされたページをHTTPでリダイレクトする方法です。今回は、以下の2パターンで試してみました。 環境変数「HTTPS」を使用する。 環境変数「SERVER_PORT」を使用す…
preg_splitを使用すると、指定した正規表現によって文字列を区切って配列を作ってくれます。 サイト等で入力された検索キーワード等をスペースで区切って検索条件の設定をするのにスゴク便利に使えます。 が、ちょっとだけ落とし穴があったので、備忘録とし…
今更ながら、PHPのセッションIDのハッシュアルゴリズムの変更と、セッションIDに使用する文字種を設定する項目があることを知りました。(PHP5以降のみ) session.hash_functionとsession.hash_bits_per_character 今回設定する項目は、 session.hash_function…
git commitを実行あとでコミットをやり直したり、コミット自体を取り消す方法です。 直前にしたコミットをやり直す(git commit --amend) 直前にしたコミットをやり直す場合、「git commit --amend」を使用します。例えば、直前のコミットログが以下のよう…
git add を実行あとで修正していなかった部分に気づいてしまった場合や、 「git add .」で間違って.swpとかのバックアップファイルがステージングに入ってしまった場合に、 git addをキャンセルする方法です。 コマンドの構文 ファイルをキャンセルする場合 …
OracleでINSERT/UPDATEの処理を書くのってなかなか面倒なので、なにか良い方法は無いかと探してみたらMERGEって方法がありました。 何気に便利だったので、覚え書きとして書いておきます。※MERGEはOracleでしか使えないようです。 MERGEの基本構文 MERGE INT…
以前にまとめたUbuntu10.4でRedmineを元に記述間違いや新たな問題が発生したので、新しいエントリとして、情報を整理してまとめ直してみました。以前との違いは Ubuntuはデュアルブートでインストール → 前回は仮想環境(VirtualBox) Redmine1.0.1 → 前回は0.…
PHPでハッシュ配列をJSON形式の文字列に変換する関数を作ってみました。通常、PHPで配列をJSON形式に変換するには「json_encode」を使用するのですが、この関数は「UTF-8 エンコードされたデータでのみ動作」という制約があるため、SJISの場合などは使用でき…
csvファイルやtsvファイルでデータ作成をする場合、過去に作ったファイルと新しいファイルとの差分だけを抽出したファイルを作成したいことがあります。 ※私の場合、DBに登録するデータをtsvで相手先に2回に分けて送る必要があり、2回目は差分だけのデータを…
前回のエントリでは、csvファイルのある列を境にしてのファイル分割をしましたが、 今回は逆に2つに分かれているファイルを1つにマージする処理をPerlで書いてみました。 ※ハッキリ言って、たいした内容じゃないです。前回のエントリ:PerlでCSVファイルやTS…
csvファイルのある列を境にしてファイル分割が必要だったのでPerlで書いてみました。 今回やりたかった事としては、以下のhoge.csvからfoo.csvとbar.csvを生成するというものです。 データサンプル hoge.csv(元ファイル) NAME AGE ADDRESS MAIL TEL Emacs君 …
複数ディレクトリをfindで検索する場合、特定のディレクトリを検索対象外にする方法です。 findコマンドの「-prune」と「-o (-or)」オプションの組み合わせで実現することができました。 UNIXの部屋 コマンド検索: find より -prune それ以上ディレクトリを…
たくさんあるディレクトリの中からファイルが一つも無いディレクトリ(いわゆる空ディレクトリ)を削除する方法です。 削除する方法としては、findで空ディレクトリを探して、見つかったディレクトリを削除するという方法になります。空ディレクトリの検索はfi…
あるディレクトリ以下のファイルの文字列を一括置換する方法。 find,xargs,perlで一括置換 カレントディレクトリ以下のテキストファイル(*.txt)の文字列"hoge"を"foo"に置き換えする場合。 $ find . -type f -name '*.txt' | xargs perl -i -pe 's/hoge/foo/…
PHPのセッション管理はデフォルトがファイルでの管理になりますが、WEBサーバーを冗長化した時などは各サーバーにセッション用ファイルが格納されてしまうため、途中でセッションが切れてしまうといった問題が発生します。そうならないために、PHPのセッショ…
前回エントリ PHPセッションをDBで管理 - OracleでのAutoIncrement用テーブルを作成編 の続きです。 前回はOracleでセッション管理用のテーブルを作成するところまで行ないました。 今回は、そのテーブルを使って実際にPHPからセッション管理を行うのをやっ…