[PHP]年月日の文字が入った日付文字列を,YYYYMMDDに変換する(2012年1月31日 -> 20120131)
PHPで、例えば「2012年1月31日」といった、書式編集されている日付文字列を、 「20120131」のようなYYYYMMDD形式に変換します。。 function normalizeDate( $inStr ) { // 年月日の各パーツを分割する preg_match( "/([0-9]*)年([0-9]*)月([0-9]*)日/", $inStr, $data ); if ( Count( $data ) != 4 ) { return $inStr; } /…
続きを読む
xpathで複数のclassが指定されたタグを取得する
xmlのデータから特定のタグ(ノード)を取得するにはxpathを指定すると便利です。 例えば、以下のxpath式では、xml内にあるliタグを検索する事が出来ます。 //li//li さらに、xpath式では特定の属性値を持つデータのみを絞り込む事も可能です。 例えば以下のようなxhtmlがあった場合に… <ul> <li class="row-data"> … </li> <li class="row-data"> … </li> <li class="ro…
続きを読む
WordPressにzenbackを導入する時にすべき2つの事
blogで自分が書いた記事に関連するページを自動でお勧めしてくれるzenbackですが、時々変なページを推薦してくる事があります。例えば、本サイトのblogタイトルはnanoblogなのですが、記事のない用に関係なくカワダから販売しているnanoblockの関連ページにリンクされる事が、結構ありました。 WordPressを使ってblogを運営している際に、zenbackを導入したい場合は、下記の2点をしておくと関連記事の表示が期待したように動作してくれます。 html内のどこが本文/タイトルなのかをマークする zenbackのクローラーに対して、html内のどこに記事本体があるかを教えてあげ…
続きを読む
[Research Artisan]ドメイン別のアクセス数ページのレイアウトを調整
ReserchHelper::timePageTag()と、reserch.cssに手を入れて以下の変更をおこないました。 行の高さを調整 ドメイン名設定のリンクを同じ行に ドメイン名設定の文字を薄くする 行の高さを調整 ドメイン名設定のリンクを同じ行に ドメイン名設定の文字を薄くする 高さ25px,marginが5pxだったのをそれぞれ20px, 2pxに変更です。 変更後のデザインはこんな感じ。 行が細くなり、多数のデータを一度に表示出来る様になりました。 cssを変更した事に夜うれしい副作用として、他の明細系もすっきりしました。 変更前はこんな感じだったのでかなり便利です。 「週4時間」…
続きを読む
[Research Artisan]アクセスログをRSS配信するプラグイン
フリーのPHP製アクセスログ解析ソフトとして有名なReserch Artisan Liteですが、取得したアクセスログをRSSのフィードで配信するプログラムを作成したので公開します。 ダウンロード 以下のファイルをダウンロードしてください。 Download: rss.zip インストール手順 以下の手順でインストールを行います。 コピーする対象のファイルは1つだけです。 1.上記ファイルをダウンロードします。 2.public_htmlに置いた ra/analyze/index.phpと同じフォルダに、rss.phpをコピーします。 (フォルダ名を変更している場合は、各自読み替…
続きを読む
[PHP] DateTimeオブジェクトとRFC822形式文字列を相互変換
PHPで用意されているDateTimeオブジェクトと,RFC822規格で定められた文字列を相互に変換する処理です。RFC822形式の日付書式は、rss2.0のpubDateタグなどで使用されています。 サンプル // DateTime -> RFC822 $sysdate = new DateTime(); echo $sysdate->format( DateTime::RFC822 ); // RFC822文字列 -> DateTime $dateStr_rfc822 = "Wed, 30 May 20…
続きを読む
[PHP]php5.3でDateTimeクラスに追加されたメソッドと同等の事を5.2で行う
PHP5.2に対して、PHP5.3ではDateTimeクラスに対してメソッドが追加されているため、5.3向けに書かれたコードを5.2の環境で動作させようとすると問題が発生する事があります。 このような場合の対処法を幾つか確認したのでメモしておきます。 //——————————- // 現在の時刻を取得 //——————————- $sysdate = new DateTime(); //——————————- // 現在時刻を文字列…
続きを読む
[Research Artisan]のソースコード解析メモ2
ResearchArtisanLiteの解析メモその2 その1はこちら:Research Artisan Liteのソースコード解析メモ エントリポイントであるindex.phpから、データの取得周りまでの処理の流れを調べたときのメモです。 プログラムのソースを改変する人向けなので、1ユーザとして使用する際には全く必要ない情報です。 ヘルパーのロードは,RaView->showView()内からコールされる_loadHelper()で行われる. このメソッドへ到達するための流れは以下の通り。 index.php Ra->execute() Ra->_showView() RaVie…
続きを読む
Yahooメールのインタレストマッチ広告を停止する
Yahooメールの広告表示ルールが変更に Yahoo! Japanは2012年8月1日以降、Yahooメールの使用時に広告表示の方法が変更されます。 変更の内容は、Yahooメールのページに表示されていた広告の種類が、今まではユーザの属性に関係なく表示されていたのですが、変更後はユーザにの嗜好に応じたインタレストマッチ広告が表示されるようになります。 そして、ユーザの趣味や嗜好をYahoo側が判定するために、Yahooにメール本文がチェックされます。 その対象は、メールのタイトルだけではなく、本文も含まれます。 広告の表示場所ですが、現在では、以下のようにメール本文の横やフォルダ一覧の上などに…
続きを読む
WordPressでAdSenseの広告を表示させる時にすべき事
WordPressを使用してblogを運営している際、AdSense利用時には下記の事をしておくと良いです。 それは何かというと、個別ページの記事内容を表示させる関数である、the_content()の前後を、google_ad_section_start,endコメントで括る作業です。 <!– google_ad_section_start –> <?php the_content() ); ?> <!– google_ad_section_end –><!– google_ad_section_start –> <?php …
続きを読む
[Research Artisan Lite]時間別の明細データを見やすく整形しなおす
時間別の明細データが見づらいので、レイアウトを改善します。 この画面、インストール直後は以下のような表示がされます。 多数の情報が表示されおり便利なのですが、一明細あたりの表示エリア(高さ)が大きく、多量のデータを見る時はスクロールが必要になります。そこで今回は、表示する内容はそのままにした上で、改行位置やフォントサイズを見直し、コンパクトに情報を閲覧できるようにします。 変更のベースにするソースはver1.17です。 ちなみに、時間別の明細データ画面は、ログイン後に出てくるページにある、グラフの時刻をクリックすると表示できます。 変更内容: 今回変更を行う対象は以下の2ファイルです。 ra_…
続きを読む
[Research Artisan]ページヘッダの画像を小さくする
Reserch Artisan Liteで、常に表示されているページヘッダ画像を縮小表示させます。 不要な情報を減らすことで、見たい情報をスクロールせずに閲覧できるようにします。 変更内容: main.css 場所:ra\analyze\stylesheets\ #bannerの表示エリア調整と、その中にあるimgタグのサイズ指定を行います。 #banner { /* mod: 2012/05 トップバナー表示エリアを小さくする height: 80px; width: 500px; margin: 0 0 15px 0; */ margin 0px; font-size: 120%…
続きを読む
[Research Artisan]ログイン画面でパスワード入力欄にフォーカスセットさせる
ログイン画面を表示させたとき、初期状態でパスワード入力欄にフォーカスがセットされていないので、フォーカスセットさせる為の改造です。 細かい事ですが、ちょっとした事の積み重ねで使い勝手が変わってきます。 ベースとなるソースは、ver1.17です。 変更内容 login.html 場所: ra_core\application\views\login ファイルの最後に、以下のスクリプトを追加します。 <script> window.onload = function() { //パスワード入力欄にフォーカスセット var edtPass = document.getElementByI…
続きを読む
[Research Artisan]ログイン後の画面に、AdSenseクリック数・リンククリック数を表示させる
Reserch Artisan Liteでは、ログインを行った直後に、当日の時間別アクセス数が表示されます。 今回の改造は、このページにAdSenseのクリック総数と、リンクのクリック総数を表示させます。 上記の情報を表示させるためには、Reserch Artisan Liteのソースを変更する必要があります。 今回は、ver1.17のソースを元に手を入れています。 変更対象となるファイルは、以下の3ファイルです。 ReserchController.php 場所: ra_core\application\controllers time()メソッドで表示対象のログデータのSQL組み立て処理を…
続きを読む
[PHP]メソッドの呼び出し元関数名を取得する
debug_backtrace()関数を使用することで、スタックトレースの情報から取得可能です。 function showCallerFunc() { $dbg = debug_backtrace(); echo( $dbg[1][’function’] ); }function showCallerFunc() { $dbg = debug_backtrace(); echo( $dbg[1][‘function’] ); } メソッド内で、呼び元が誰かを知る必要は通常ありませんが、デバッグ…
続きを読む
Reserch Artisan Liteの明細画面で、1ページあたりの表示件数を変更する
PHP製アクセス解析のオープンソースソフトウェアとして、有名なモノにReserch Artisan Liteがあります。フリーで使用可能でありながら、非常に高機能な事で有名なソフトです。 概ね満足しているのですが、デフォルトだとログの出力結果が若干見づらい部分が幾つかあるので、見やすくする為の修正方法を幾つか行ってみます。 まずは、検索結果の明細ページに表示される1ページあたりの件数を変更します。 デフォルトでは、以下のように30件づつ表示されます。 アクセス数が少ない場合はこれでも良いのですが、多くなってくるとページ遷移が面倒になってくるので、表示件数を増やします。 この件数はシステム設定画…
続きを読む
Research Artisan Liteのソースコード解析メモ
データ集計周りのロジックを調査したときのメモ。 ソースを調査した目的は、Research Artisan Liteでログイン直後に表示される時間別画面に、各種サマリー値(adsenseクリック数など)を出したかったから。 確認できた事 ログの集計は、RaModel.phpのfindQuery()で実施される。 ログの種類は各種ある(アクセスログ、クリックログ、adsenseログetc.)、これらはlogテーブルのlogtype列で種別分けされている logtypeの種類はConfig.phpで定義されている。 const NORMAL_ACCESS = ‘0’; const CLICK_LIN…
続きを読む
64bit環境でvcredist_x64.exeを入れても,MSVCR100.dllが有りませんのエラーが出る場合
VisualC++2010で作成したプログラムを実行するためには、実行環境にMSVCR100.dllが必要となります。このdllは、Microsoftより下記のパッケージを入れることでインストールされます。 Microsoft Visual C++ 2010 再頒布可能パッケージ (x86) Microsoft Visual C++ 2010 再頒布可能パッケージ (x64) 32bitのOSで使用する場合は、x86のパッケージを入れることでプログラムが使えるようになるのですが、64bit版のwindowsを使用時は、x64のパッケージを入れても問題が解決しない場合があります。 これは、実行し…
続きを読む
[C#]TextBoxに数字のみ入力可能にする
以下のコードは、TextBoxに対して数字のみを入力可能とするコードです。 数字以外を入力した場合は無視されます。 private void textBox1_KeyPress( object sender, KeyPressEventArgs e ) { // 制御文字は入力可 if ( char.IsControl(e.KeyChar) ) { e.Handled = false; return; } // 数字(0-9)は入力可 if ( char.IsDigit(e.KeyCha…
続きを読む
謎の企業、fabrikam.comを調査する
今日、いつものようにリモートデスクトップを使おうと思ったら、入力例にcomputer.fabrikam.comと表示されている事に気づきました。 このドメイン、いったいなんだろうと思って、試しにブラウザでアクセスしてみました。 IEで、fabrikam.comにアクセスしてみます。 すると、302リダイレクトでwww.microsoft.com/ms.htmに飛ばされてしまいました。 そこからさらにhttp://www.microsoft.com/に飛ばされ、結果的にMicrosoftのホームページが表示されました。 どういうことかと思い、fabrikamについて調べてみると、どうやらfabr…
続きを読む