2009年12月30日水曜日

array_searchで0がスルーされる

任意の値が配列内に存在するのかを確認する為に

if(array_search("hoge", Array)

ってやったらなぜか配列の0だけがスルーされてしまっていた。

どうやら0で判断させれようではなく、
falseで判断させるといいらしい


if(array_search("hoge", Array) !== false)

で期待通りの判定ができた

2009年12月29日火曜日

php 文字列の比較

いつも忘れるのでメモ

if ( strcmp($a,$b)==0 ){ print '同じ'; }

2009年12月8日火曜日

swfobject.embedSWFのIEでの背景透明

FirefoxやSafariでは問題なくても、
やっぱりIEでは問題が起きる。必ずと言っていいほど。

flashの上にイメージをposition:absoluteで配置した場合、
IEだとflashの下になってしまう。
z-indexで上下を変えられなかったので、
背景を透明にすることで対応する。

var flashvars = {};
var params = {wmode: "transparent"};
swfobject.embedSWF(”xxx.swf”, “ID”, “w-size”, “h-size”, “varsion”, “expressInstall.swf”, flashvars, params);

2009年12月3日木曜日

共有SSLを使用した場合のIEでの問題

こういうことは専門外だけど
IEでのhttpsにアクセスした際に出る
「このページにはセキュリティで保護されている項目と保護されていない項目が含まれています」
というアラート解決まで。

まず、今使ってるサーバは独自SSLでなく共有を使っているので、バーチャルURL設定が必要だった。
それで、設定後取得したURLを自分のドメインの頭につけないと証明書の〜ってアラートが出る。
まぁ、これはすぐに解決。

設定後IE7でテストしてみると、
冒頭でも書いた「このページにはセキュリティで保護されている項目と保護されていない項目が含まれています」
というエラーが出る。
でもこれを「はい」にすれば特に問題もなく表示はされるけど、
信用度がむちゃくちゃ低くなる。胡散臭くなるんですよ。

調べた結果、エラー文の意味通りで
baseにルートのURLを入れていたからSSL対象外のURLからcssやらjsやらを参照してた。
これが問題。

すごい面倒だったけど、
初期化時に全ページのURLを配列で作って、
現在のページがどこからなのか(バーチャルURLから?ルートから?開発から?)ってので、
作り分けました。

無事終了できれいに出来たので良かった。

簡単なことだけど、全然わかってなかった。

2009年11月18日水曜日

鉄板ソース

【 JavaScript 】
 * -------------------------------------------- *
【フォームのポップアップメニュー:現在選択されている値を得る】
  var VAL = document.forms[int].elements['(objname)'].selectedIndex;
  [int]:form番号
  [objname]:ポップアップメニュー の名前
(例)
var form = this.document.forms[0];
var obj = form.elements['myselect'];
var nowselect = obj.selectindex;


【 php 】
 * -------------------------------------------- *
 【配列内検索】
(例)
$temp_arrays = array("東京都","神奈川県","千葉県");
$hit = array_search('神奈川県',$temp_arrays);
if ($hit !== FALSE){
# 存在>処理;
}


 * -------------------------------------------- *
 【ディレクトリ内ファイル情報取得】
  ※特定のディレクトリ内のファイル名を獲得
(例)
if ($h = opendir($dir)) { # ディレクトリハンドル
while (false !== ($file = readdir($h))) { # ファイル名獲得
echo $file; # 処理
}
closedir($h); # ディレクトリハンドルクローズ
}


 * -------------------------------------------- *
 【商品金額などのカンマ表示処理】
  ※四捨五入に利用も可能
(例)
$temp_val = number_format($from_val,0);


 * -------------------------------------------- *
 【多次元配列でのソート】
  ※多次元配列で項目を指定してソートする
(例)
#多次元配列変数
$temp_vals[0]['id']=1; $temp_vals[0]['place']='都会'; $temp_vals[0]['suki']='4';
$temp_vals[1]['id']=2; $temp_vals[1]['place']='樹海'; $temp_vals[1]['suki']='3';
$temp_vals[2]['id']=3; $temp_vals[2]['place']='宇宙'; $temp_vals[2]['suki']='1';
$temp_vals[3]['id']=4; $temp_vals[3]['place']='深海'; $temp_vals[3]['suki']='2';

・好き(suki)順に並べる
foreach($temp_vals as $key => $val){
$suki[$key] = $val["suki"];
}
array_multisort($suki,SORT_ASC);

・第2整列順 ・・・
(上記例では意味無いけど)
※好き順 > id逆順
foreach($temp_vals as $key => $val){
$suki[$key] = $val["suki"];
$id[$key] = $val["id"];
}
array_multisort($suki,SORT_ASC,$id,SORT_DESC);


助かります。
http://metaboy.blog23.fc2.com/?tag=number_format

2009年11月16日月曜日

aタグのonclickでバグ(IE6)

form の外から submit() するため、aタグにonclickで関数を設定。
しかし、IE6 だけ動かないので、onclickに設定した関数のあとにreturn falseを追加。

もしくは以下でも大丈夫だけど、強引な感じがするのでreturn falseを入れる
timer = setTimeout( function () { form.submit(); }, 0 );

2009年10月28日水曜日

addQuicktagのFatal error

wordpressにaddquicktagプラグインを入れました。
別のwpにエクスポートした設定をインポート使用をファイルを吐き出し、
addquicktag設定画面でインポート。

その後、設定画面は「fatal error」他社のmysqlだったので、直接触るのは控えたかったのでgoogleで検索したところ、
http://idea-promotion.netさんに助けてもらえました。

引っかかっていたのは以下の場所
for ($i = 0; $i){


$b = $o['buttons'][$i];

  $b['text'] = htmlentities(stripslashes($b['text']), ENT_COMPAT, get_option(’blog_charset’));
  $b['start'] = htmlentities($b['start'], ENT_COMPAT, get_option(’blog_charset’));
  $b['end'] = htmlentities($b['end'], ENT_COMPAT, get_option(’blog_charset’));
  $nr = $i + 1;


このようにすればなおりますー

for ($i = 0; $i; $i){
if(is_array($o)){
    $b = $o['buttons'][$i];

    $b['text'] = htmlentities(stripslashes($b['text']), ENT_COMPAT, get_option(’blog_charset’));
    $b['start'] = htmlentities($b['start'], ENT_COMPAT, get_option(’blog_charset’));
    $b['end'] = htmlentities($b['end'], ENT_COMPAT, get_option(’blog_charset’));
   $nr = $i + 1;

2009年10月9日金曜日

PHP 5.3.0でのnumber_format

XAMPPの最新バージョン1.7.2は、
PHP 5.3.0になっています。

日頃からsmartyを利用しているのですが、
修正子としてnumber_formatを使用するとエラーが発生

と思っていたら、普通にphpに書き込んでもエラー起きます。
parameter 1 to double ~~

いまだに解決できずに。


バージョン1.7.1のダウンロードはここでできる。
http://xampp-for-windows.jp.brothersoft.com/


追記----------------------------09/12/2
simpleXMLを使用した場合に、エラーが起きるようです。
simpleXMLの配列に反応してしまうようなので、
どうしても使用したい場合は一度simpleXMLの配列から置き換える必要があった。

IEで文字の上下が消える(切れる)

いまさらだけど、忘れるネタでもあるので。


line-heightの指定をすると直ります。


IE7でも起きる問題。

2009年7月5日日曜日

smartyで携帯サイト

smartyとShift-JISの相性は悪いらしく、
Shift-JISでの特定の漢字(例:本など)に反応してエラーを出す。
いちいち、literalで囲むのもソースが汚くなるので、
utf-8で作って、表示だけをShift-JISで吐き出す。


// 携帯なので結果をいったん変数に入れる
$output=$smarty->fetch($loadtpl);
// SJISに変換する
$output=mb_convert_encoding($output,"SJIS","UTF-8");
// 変数の内容をechoで書き出し
echo $output;

2009年6月24日水曜日

Openwave エミュレータあります

DLを停止中のOpenwave。
インストールしてもデバイスがなさ過ぎて全く使えなんですが。
どうしましょう・・。
デバイスファイル探しても見つからないんですよね。

google Analytics 動的ページの埋め込み

「Google Analytics」によってPHPのフォームのアクセス解析をする方法について仕事でつまづいたのでメモ。
自社開発のフォームが、「入力・確認・終了」のページをテンプレートを使って制御しているものために、表示されるURLが同じなのである。

つまり「○○.php」と表示されてはいるものの、中では
・「入力.html」・・・ユーザーに各項目を入力してもらうページ
・「確認.html」・・・内容の確認をするページ
・「終了.html」・・・送信完了。ありがとうございましたのページ
とページ遷移している。


「dopvSTAR*」のように、各ページに別のIDを振る仕様ならば問題は無いのだが、「Google Analytics」は同じタグを埋め込み、スクリプトの動いたページに関して記録をするため、上記の構成だとすぺて同じページとしてカウントしてしまい、例えば確認ページでユーザーが出て行ってしまった場合などが分からなくなる。

この状態ではコンバージョンの計測もできない。


そこで見つけたのがurchinTracker関数を使った以下の方法。
各ページにおいて「Google Analytics」のタグの直前にコードを追加する。

・「入力.html」
  

・「確認.html」
  

・「終了.html」
  


ページが読み込まれた際にonloadによって別ページとして判断させる処理を行っている。

これで「Google Analytics」側では上記の3ページが
・step1.html
・step2.html
・step3.html
として認識される(はず・・・)


サンクスhttp://jiyuujizai.net/archives/web/google/000024/


※追記----------------------------
09.07.05

現在は上記の対応は必要がないもよう。


2009年6月12日金曜日

flash ビットマップキャッシュについて

描画したベクターデータをビットマップとしてキャッシュする。

ムービークリップのプロパティであるらしい。
this.cacheAsBitmap = true;

http://hakuhin.hp.infoseek.co.jp/main/as/bitmap_cache.html

2009年5月7日木曜日

個人的に鉄板な処理

基本前のソースをコピペなので一向に覚えられない。
しかも、ソース探すのだるいので。


require 'Smarty/libs/Smarty.class.php';
$smarty = new Smarty;
$smarty->template_dir = "./tpl/";
$smarty->compile_dir = "./template_c/";

require_once("init.php");
$page =isset($_REQUEST['page'])?intval($_REQUEST['page']) : 1;
header("location: tshirt.php");
$smarty->assign('type', $type);
$smarty->display('item.tpl');

$d =htmlspecialchars($_REQUEST['d']);
$infoXML = simplexml_load_file('info.xml');


$dateY = date("Y");
$smarty->assign("year", $dateY);

2009年4月13日月曜日

fusekitでテキストのfadeIn、fadeOut

今までダイナミックテキストをfadeIn、fadeOutできると思ってませんでした。
プロパティにある「フィルタ」で、
任意のテキストフィールドに「カラー調節」を追加することでできるようになる。



参考ブログ
bute_lab.

2009年4月10日金曜日

#includeに関して

今まで問題なくやってきたので、
相当いまさらだと思うがイライラしたんで。

flashの
#include "hogehoge.as"

でインクルードされるファイルはSHIT-JISじゃないと反応しないんすね。


20分はハマッた・・・。

2009年3月26日木曜日

読み込んだswfの_root

これ散々悩みましたが、
読み込む処理の後に、
_lockroot = true;
で解決した。

しかし、その後非常に重くなったのであまりよくないのかな?
「_lockroot 重くなる」などで調べても何も出てきませんでした。

別な策で、
読み込まれるswfの構造に工夫をして
_root.root_objを_rootのつもりにして、全てをroot_objの中で簡潔させる。

読み込み先のムービークリップを
load_objとしたら、

_root.load_obj.root_obj

ってなるようにする。

以下のようにしておけば、呼び出されているのかどうかで_rootを書き換えられるだろう。

function rootObj() {
if(_root.load_obj){

return eval(”_root.load_obj.root_obj”);

}else{

return eval(”_root.root_obj”);




例え)_rootの_visibleを制御する場合
rootObj()._visible = false;

flashのローディングに関して

flashで_rootをローディングする際、
その処理を_rootのタイムラインに書いてしまうとうまくいかないようだ。
よく、「30%まで何も表示されないんですが」なんて質問は
リンケージの「最初のフレームに書き出し」と、これが問題なんじゃないかと。


_root.loading:MovieClipを作成して、
_root.loadingのタイムラインにローディングの処理を書くとうまくいきました。

_rootが_rootのローディングをするってのがおかしかったのか・・・

とりあえず、
_rootにムービークリップを作成して、
客観的にロードしなさいよとすれば問題なかったので、これでよし。

2009年2月27日金曜日

fuse kit FMPプロパティ 一覧

BlurFilter (ブラー)


Blur_blurX 0 ~ 255 Xのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)(浮動小数可)
Blur_blurY 0 ~ 255 Yのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)(浮動小数可)
Blur_blur 0 ~ 255 XとYのぼかし量を同時に指定。
Blur_quality 0 ~ 15 フィルタを適用する回数。1(LOW)/2(MEDIUM)/3(HIGH)(デフォルトは1)


GlowFilter (グロー)


Glow_color 0xRRGGBB グローのカラー。(デフォルトは0xFF0000)
Glow_alpha 0 ~ 1 カラーの透明度。(デフォルトは1)
Glow_blurX 0 ~ 255 Xのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
Glow_blurY 0 ~ 255 Yのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
Glow_blur 0 ~ 255 XとYのぼかし量を同時に指定。
Glow_strength 0 ~ 255 インプリントの強さまたは広がり。(デフォルトは2)
Glow_quality 0 ~ 15 フィルタを適用する回数。1(LOW)/2(MEDIUM)/3(HIGH)(デフォルトは1)
Glow_inner Boolean 内側グロー/外側グロー(デフォルトはfalse)
Glow_knockout Boolean ノックアウト有り/ノックアウト無し(デフォルトはfalse)

DropShadowFilter (ドロップシャドウ)


DropShadow_distance 0 ~ シャドウのオフセット距離 (ピクセル単位) (デフォルトは4)
DropShadow_angle 0 ~ 360 シャドウの角度 (デフォルトは45)
DropShadow_color 0xRRGGBB シャドウのカラー。(デフォルトは0×000000)
DropShadow_alpha 0 ~ 1 カラーの透明度。(デフォルトは1)
DropShadow_blurX 0 ~ 255 Xのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
DropShadow_blurY 0 ~ 255 Yのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
DropShadow_blur 0 ~ 255 XとYのぼかし量を同時に指定。
DropShadow_strength 0 ~ 255 インプリントの強さまたは広がり。(デフォルトは1)
DropShadow_quality 0 ~ 15 フィルタを適用する回数。1(LOW)/2(MEDIUM)/3(HIGH)(デフォルトは1)
DropShadow_inner Boolean 内側シャドウ/外側シャドウ(デフォルトはfalse)
DropShadow_knockout Boolean ノックアウト有り/ノックアウト無し(デフォルトはfalse)

BevelFilter (ベベル)


Bevel_distance 0 ~  ベベルのオフセット距離 (ピクセル単位) (デフォルトは4)
Bevel_angle 0 ~ 360 ベベルの角度 (デフォルトは45)
Bevel_highlightColor 0xRRGGBB ベベルのハイライトカラー(デフォルトは0xFFFFFF)
Bevel_highlightAlpha 0 ~ 1 ハイライトカラーの透明度。(デフォルトは1)
Bevel_shadowColor 0xRRGGBB ベベルのシャドウカラー(デフォルトは0×000000)
Bevel_shadowAlpha 0 ~ 1 シャドウカラーの透明度。(デフォルトは1)
Bevel_blurX 0 ~ 255 Xのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
Bevel_blurY 0 ~ 255 Yのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
Bevel_blur 0 ~ 255 XとYのぼかし量を同時に指定。
Bevel_strength 0 ~ 255 インプリントの強さまたは広がり。(デフォルトは1)
Bevel_quality 0 ~ 15 フィルタを適用する回数。1(LOW)/2(MEDIUM)/3(HIGH)(デフォルトは1)
Bevel_type String 外側ベベル(outer)/内側ベベル(inner)/オブジェクトの上(full)
Bevel_knockout Boolean ノックアウト有り/ノックアウト無し(デフォルトはfalse)

GradientGlowFilter (グラデーショングロー)


GradientGlow_distance 0 ~  グローのオフセット距離 (ピクセル単位) (デフォルトは4)
GradientGlow_angle 0 ~ 360 グローの角度 (デフォルトは45)
GradientGlow_colors [0xRRGGBB] グラデーションを定義する色の配列。
GradientGlow_alphas [0 ~ 1] colors 配列内の各色に対応する透明度の配列。
GradientGlow_ratios [0 ~ 255] 配列内の対応する色の色分布比率の配列。
GradientGlow_blurX 0 ~ 255 Xのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
GradientGlow_blurY 0 ~ 255 Yのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
GradientGlow_blur 0 ~ 255 XとYのぼかし量を同時に指定。
GradientGlow_strength 0 ~ 255 インプリントの強さまたは広がり。(デフォルトは1)
GradientGlow_quality 0 ~ 15 フィルタを適用する回数。1(LOW)/2(MEDIUM)/3(HIGH)(デフォルトは1)
GradientGlow_type String 外側グロー(outer)/内側グロー(inner)/オブジェクトの上(full)(デフォルトはinner)
GradientGlow_knockout Boolean ノックアウト有り/ノックアウト無し(デフォルトはfalse)

GradientBevelFilter (グラデーションベベル)


GradientBevel_distance 0 ~  ベベルのオフセット距離 (ピクセル単位) (デフォルトは4)
GradientBevel_angle 0 ~ 360 ベベルの角度 (デフォルトは45)
GradientBevel_colors [0xRRGGBB] グラデーションを定義する色の配列。
GradientBevel_alphas [0 ~ 1] colors 配列内の各色に対応する透明度の配列。
GradientBevel_ratios [0 ~ 255] 配列内の対応する色の色分布比率の配列。
GradientBevel_blurX 0 ~ 255 Xのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
GradientBevel_blurY 0 ~ 255 Yのぼかし量。2のべき乗は高速に最適化。(デフォルトは6)
GradientBevel_blur 0 ~ 255 XとYのぼかし量を同時に指定。
GradientBevel_strength 0 ~ 255 インプリントの強さまたは広がり。(デフォルトは1)
GradientBevel_quality 0 ~ 15 フィルタを適用する回数。1(LOW)/2(MEDIUM)/3(HIGH)(デフォルトは1)
GradientBevel_type String 外側ベベル(outer)/内側ベベル(inner)/オブジェクトの上(full)
GradientBevel_knockout Boolean ノックアウト有り/ノックアウト無し(デフォルトはfalse)

Fuse Kit : ショートカットプロパティ一覧


_scale 0 ~ _xscaleと_yscaleを同時に指定。 
_size 0 ~ _widthと_heightを同時に指定。 
_frame 0 ~ ムービークリップのタイムラインの現在のフレームの値を指定/取得。 
_fade 0 ~ 100 透明度の指定。
_tint 0xRRGGBB カラーの指定。色の数値を返します。Number()を使って数値変換できます。
_tintString  “0xRRGGBB” カラーの指定。16進数文字列で返します。Number()を使って数値変換できます。
_tintPercent 0 ~ 100 事前に色変更されたターゲットの色のパーセンテージを指定/取得。 
_brightness -100 ~ 100 明度の指定。-100(黒)/0(通常)/100(白)
_brightOffset -100 ~ 100 焼き込み効果。-100(黒)/0(通常)/100(白)
_invertColor 0 ~ 100 ネガ効果。0(通常)/100(反転)。相対値できます。
_colorReset 0 ~ 100 色変化を、0(現状から変化なし)から、100(全てリセット)までの範囲でリセット。
_contrast 0 ~ 200 コントラストの指定。0(グレー)/100(通常)/higher(200がコントラスト最大、higher にすると画像をポスタライズ)。相対値できます。
_colorTransform   ra, rb プロパティ等の特定のカラートランスフォームオブジェクトの指定/取得。

2009年2月18日水曜日

fuse kit イージング

久々にflashいじってfuse kitの使い方を全部忘れた。
イージング表


前半部には3種類

easeIn動きの最初(In側)に効果を適応させる。
easeOut動きの最後(Out側)に効果を適応させる。
easeInOut動きの最初と最後両方(InOut)に効果を適応させる

そして後半部はどういう具合に加減速するかを指定します。
Sineゆるやかに(程度1)
Quadゆるやかに(程度2)
Cubicゆるやかに(程度3)
Quartゆるやかに(程度4)
Quintゆるやかに(程度5)
Expoゆるやかに(程度6)
Circ円っぽい増加!?
Elastic終点でバネのような動き。ビヨンビヨーン
Backちょっと行き過ぎて戻る動き
Bounce終点で跳ね返るような動き


何も適用しない場合
None.easeNone

サンクスCBCNET, trick7

2009年1月30日金曜日

[IE6] javascriptでのformのsubmitで引っかかった。

firefox, safari, IE7で何の問題もなく動いていた、
javascriptでもformのsubmit。

<a href="javascsript:void(0);" onclick="submitCheck() ;return false;">送信

とこんな感じで動かしていた。
実際は、二度押しなどしないようにフラグ立てたり、
入力文字列のチェックなどもろもろ。

IE6でなぜか動かないということで、試してみると

<input type="submit"> ○動く
<a href="#" onclick="document.formName.submit()">送信○動く

違いは何かというと、
<a href="javascsript:void(0);" onclick="submitCheck();return false;">送信</a>


void(0);が空を意味するなんて聞いたけど、
動いたのでこれでよし。