PHP カテゴリー記事

【注意】YSlowプラグインの挙動

2008-09-09 (火)カテゴリHTML, PHP, プラグインタグ

カウントアップのプログラムを作っていて奇妙な現象でハマったのですが
いくらやっても1ずつしかカウントアップしないはずなのに
2カウントずつ増えてて困っていたのですが、なんとか解決!

Firefoxのプラグインの「YSlow」が1カウント分を取っていたのでしたー。orz
「YSlow」プラグインはWEBサイトの表示の早さを測定するプラグインで
ブラウザの読み込みが終わった後、再度測定を始めるというものだった…
だから2回カウントしない時もあったわけで。。
うっかり忘れてたらはまりますね。これ。

サイト構築時などレスポンス見る際には重宝するんですけどね。
こまめにプラグインのオンオフは必要ですね;

ページのチューニングを助言してくれるFirefoxアドオンYSlow

star ratingのいたずら防止

2008-08-08 (金)カテゴリJavascript, Word Press, jQuery, デザインタグ

スターレーティングを簡単に作成する時に重宝しているjQueryのプラグイン
jQuery Star Rating Plugin 2.4
http://www.fyneworks.com/jquery/star-rating/

便利なんだけど大きなサイトとかで使う場合、デフォルトだと何度もクリック出来ちゃう。
なので、いたずら防止で以下のコードを追加してあげます。

63行目以下ののclickイベントを以下の形に変更

Java Script
click: function(n, el, settings){	// Selected a star or cancelled
$.rating.groups[n].current = el;
var lnk = $(el).children('a'); val = lnk.text();
// Set value
$.rating.groups[n].valueElem.val(val);
//
//ここから追加
$.rating.groups[n].readOnly = true;
$.rating.groups[n].valueElem.siblings('.star_group_'+n)
.addClass('star_readonly')
.removeClass('star_live')
.unbind("mouseover mouseout");
//ここまで

// Update display
if($.rating.groups[n].readOnly == false){	//このif文も追加
	$.rating.event.drain(n, el, settings);
	$.rating.event.reset(n, el, settings);
// click callback, as requested here: http://plugins.jquery.com/node/1655
if(settings.callback) settings.callback.apply($.rating.groups[n].valueElem[0], [val, lnk[0]]);
}//閉じも忘れずに。
}

1回★のレーティングした後は更新ボタン押さないといけないようになりました。
古いバージョンだとイベントなどが毎回読み込まれていたようですが、新しいバージョンだと
設定部分にイベント関数が来てたりと、随分内容が変わっていました。
古いバージョンだと

Java Script
settings.cancel = <span class="synConstant">false</span>;

とclickのアクションに追加するだけなので楽ちんだったけど
イベント周りがバラバラだったので、新しい方がすっきりしてると思いました。

いつも忘れちゃうので…UNIXタイムスタンプの変換

2008-02-21 (木)カテゴリPHPタグ

自分が忘れっぽいので、ひとまず残しておく。
UNIXタイムスタンプから通常の日付に変換する方法。逆も。

2007-11-11 11:11:11をUNIXタイムスタンプに変換

PHP
$date = "2007-11-11 11:11:11";
echo strtotime($date);

UNIXタイムスタンプをYYYY-MM-DD HH:II:SSの型に変換

PHP
$date = time();
echo date("Y-m-d H:i:s",$date);

簡単な事なんだけどもいつも忘れてしまう。簡単過ぎるから!?(^_^;)
UNIXタイムスタンプにすると時間の比較とか処理するのに楽だから多用しています。
データフィールドをtimestampにして処理処理。

1ヶ月ぶり + PHPリンク変換

2008-02-20 (水)カテゴリPHP, 制作タグ,

随分書いていませんでした;
心身整理などやってたせいであまり日記書けてませんでした。。反省。
>

さて、書いていない間にもcakePHPやらJavascriptなどは進めていたので
これは近々載せていきます。
今日のメモ – PHP – リンク変換プログラム

PHP
function textURLconvert($text){
	$com = ereg_replace("(https?|ftp|news)"."(://:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","\\1\\2",$text);
	$com = ereg_replace("([#-9A-~]+)(@[#-9A-~]+)","\\1\\2",$com);
	$com = nl2br($com);
	$com = ereg_replace("[\n,\r]","",$com);
	return $com;
}

ひとまず上記でhttp://~のURLを自動的にリンクに変換してくれます。
結構使う箇所もあるので。

ひとまず先日インストールしたcakePHPを始める事にしました。

2008-01-18 (金)カテゴリPHPタグ

書籍などもないのでまずはネットで情報収集…

とりあえず”Cake ブログチュートリアル“というのがあったのでやってみました。
そこでの覚書。

「ROOT」に「app」フォルダを含んだ場合※「APP_DIR」は”(空)、/cake/config/paths.phpの48行目が

PHP
define ('APP', ROOT.DS.APP_DIR.DS);

だとAPPが

Plain Text
/var/www/app//

となるためキャッシュが保存されずにエラーとなります。なので

PHP
define ('APP', ROOT.DS.APP_DIR);

とすると解決。
ただcake入門では/cake/フォルダ内の編集は基本しないとされていて、
でも/app/config内にpaths.phpを入れても動作しないし…んー謎が残る。
とりあえず上記とパーミションを合わせて設定した所動いています。

動画ファイルのプロパティの抽出(PHP)

2008-01-17 (木)カテゴリPHPタグ, , ,

3D関係の仕事をしている友人から
社内素材管理システムの構築を現在頼まれていて、仕様決めている所なのですが。
彼らは動画ファイルを扱う事が多く、サムネイルの一覧が並ぶのではなく
動画の一覧が並ばないといけないらしい(もちろん全部再生)

現在、彼らはHTMLを作って対応しているとの事。
確かに、システムで自動化したら何て素敵なんだろうと思いますが、
問題として、その素材達を登録するには一つ一つ、検索用のキーワードを
入れていくのか?という事があったりするのです。
それはあまりにも理に適っていないので、ファイルを調べていくと
プロパティに値が入っている(素材屋さんが入れてるのかな?)
その値を抽出すれば…ってPHPとかでファイル情報って取得できるの??
調べてみました。。

Perlでのプロパティの取得
どうやらPerlだとOLE使って出来るみたい。PHPだとまったく出てこない。。orz
OLE系調べてみれば出るかな。解決方法求!

Rails から cake へ

2008-01-16 (水)カテゴリPHP, cakePHPタグ, ,

Railsでのパッケージ化を新規事業で進めようとしているのですがMVCフレームワークでの構築経験があまりにも少ない事もあり、
簡単なアプリ程度であれば何とかなったけど、開発効率と概念の理解を進めるためにPHPでMVCモデルでrailsに似たものないかなと探してみたところ。
makePHP
あるじゃないですかー!しかもrailsに結構影響受けているとの事。
これはやるっきゃないね。
んで早速サーバにインストール。。403エラー。
えー・・orz
どうやらパスの設定箇所を間違えていたようで。

Plain Text
root/
   app
   app/webroot
   cake

上記にした場合、webroot/index.phpのパスを

PHP
define('ROOT',DS.'var'.DS.'www'.DS.'httpd'.DS.'app');
define('APP_DIR', '');
define('CAKE_CORE_INCLUDE_PATH',DS.'var'.DS.'www'.DS.'httpd');

としたらうまくいった^^
.htaccessとかが問題かと思っていたら違いましたね。
さて、明日からとりあえず問い合わせフォームでも作るかね。
主に技術とかつらつらと書いていきます。
よろしくお願いします(>_<)b