PHPのarray_multisort関数が激便利だったので紹介
非常にわかりやすかったので、リンク
http://www.akiyan.com/blog/archives/2007/10/phparray_multis.html
2010年1月14日木曜日
2010年1月13日水曜日
swfAddressでのまさかのエラー
firefoxでのエラーコンソールに
「obj.parentNode.so.call is not a function」
と表示されurlが遷移してくれない問題があった。
こんなこと抜けてたのかということで、
swfAddressはflash8以降ならできるとわかっていたのに、
以下のように記述していた前のソースを利用していた為につまっていた。
var so = new SWFObject("swf/hogehoge.swf", "website", "100%", "100%", "7", "#CCCCCC");
swfObjectで8以降とキチンと書いてあげないと反応しないんですね。
var so = new SWFObject("swf/hogehoge.swf", "website", "100%", "100%", "8", "#CCCCCC");
「obj.parentNode.so.call is not a function」
と表示されurlが遷移してくれない問題があった。
こんなこと抜けてたのかということで、
swfAddressはflash8以降ならできるとわかっていたのに、
以下のように記述していた前のソースを利用していた為につまっていた。
var so = new SWFObject("swf/hogehoge.swf", "website", "100%", "100%", "7", "#CCCCCC");
swfObjectで8以降とキチンと書いてあげないと反応しないんですね。
var so = new SWFObject("swf/hogehoge.swf", "website", "100%", "100%", "8", "#CCCCCC");
2009年12月30日水曜日
array_searchで0がスルーされる
任意の値が配列内に存在するのかを確認する為に
if(array_search("hoge", Array)
ってやったらなぜか配列の0だけがスルーされてしまっていた。
どうやら0で判断させれようではなく、
falseで判断させるといいらしい
if(array_search("hoge", Array) !== false)
で期待通りの判定ができた
if(array_search("hoge", Array)
ってやったらなぜか配列の0だけがスルーされてしまっていた。
どうやら0で判断させれようではなく、
falseで判断させるといいらしい
if(array_search("hoge", Array) !== false)
で期待通りの判定ができた
2009年12月29日火曜日
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);
やっぱり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から?ルートから?開発から?)ってので、
作り分けました。
無事終了できれいに出来たので良かった。
簡単なことだけど、全然わかってなかった。
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
* -------------------------------------------- *
【フォームのポップアップメニュー:現在選択されている値を得る】
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 );
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;
別の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の配列から置き換える必要があった。
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の配列から置き換える必要があった。
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。
インストールしてもデバイスがなさ過ぎて全く使えなんですが。
どうしましょう・・。
デバイスファイル探しても見つからないんですよね。
・ドコモ
iモードHTMLシミュレータII
http://www.nttdocomo.co.jp/service/imode/make/content/html/tool2/
・au
Openwave SDK6.2K
http://developer.openwave.com/ja/tools_and_sdk/openwave_mobile_sdk/SDK62K/
停止中なので下記からのダウンロード。
http://web.archive.org/web/20041230214346/http://developer.openwave.com/ja/tools_and_sdk/openwave_mobile_sdk/SDK62K/Openwave_SDK_62K.exe
・ソフトバンク
ウェブコンテンツヴューア
http://creation.mb.softbank.jp/web/web_wcv_terms.html
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/
自社開発のフォームが、「入力・確認・終了」のページをテンプレートを使って制御しているものために、表示される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
ムービークリップのプロパティであるらしい。
this.cacheAsBitmap = true;
http://hakuhin.hp.infoseek.co.jp/main/as/bitmap_cache.html
登録:
投稿 (Atom)