SQLの窓

2010年10月30日


PHP : 前ゼロ文字列作成と右から必要な長さ文字列を取得する処理

要するに、VBScript や古い VB における Right 関数の代替えが目的です。

ただ、前ゼロしたいだけなら sprintf がありますし、他の言語でも行うに
は、文字列の長さと開始位置から指定長さを取得する処理があればできます。
<?

// **********************************************************
// n 桁の前ゼロ文字列を作成するには
// 以下で簡単に作成できますが、
// **********************************************************
$a = sprintf("%05d", 1);
print "$a<br>";

// **********************************************************
// どんな言語でもたぶんある関数(メソッド)を使って行うには
// **********************************************************

// 1) n 桁の 0 を目的の文字列の前に連結する

$a = "00000" . 1;

// 2) 全体の長さを取得する

$len = strlen($a);

// 3) 全体の長さ - 欲しい長さを開始位置とする

$start = $len - 5;

// 4) その位置から欲しい長さぶん切り取る

$x = substr( $a, $start, 5 );

print "$x<br>";

// つまり
function m_zero( $target, $n ) {

	$target = str_repeat("0",$n) . $target;
	$len = strlen($target);
	$start = $len - $n;
	$target = substr( $target, $start, $n );
	return $target;

};

print m_zero(1,5) . "<br>";
print m_zero("AA",5) . "<br>";
print m_zero("あA",5) . "<br>";
print m_zero(1234,5) . "<br>";
print m_zero(12345,5) . "<br>";

?>

00001
00001
00001
000AA
00あA
01234
12345
関連する記事 PHP 5.3.0 以降の無名関数
タグ:PHP 文字列
posted by lightbox at 2010-10-30 19:34 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする

2010年10月17日


Flex4 : 条件付きコンパイルの使用

Flex3 のコードを Flex4 でビルドすると、mx.core.Application.application
の参照で警告が出る他、スキン関連のスタイルの使用でも警告が出るようなので。

警告: "application" は 4.0 以降推奨されていません。
"FlexGlobals.topLevelApplication" を使用してください。
※ スキン(スタイル)の対処は -compatibility-version=3.0 です。 以下のような警告が出た場合も上記オプションで対応できます
警告: CSS セレクター "Application" 内の型 "Application"
は、名前空間で修飾されている必要があります。
この警告は、スタイルで @namespace "http://www.adobe.com/2006/mxml"; を指定すると消えますが、結局以下のような警告が出るので ビルドオプションを使用したほうがいいと思います。
警告: スタイル "backgroundGradientColors" は、テーマ "halo"
を含む型 "mx.core.Application" でのみサポートされています。
// パラメータをプロパティとして持つ Object を取得
CONFIG::Flex3
var param:Object = mx.core.Application.application.parameters;
CONFIG::Flex4
var param:Object = mx.core.FlexGlobals.topLevelApplication.parameters;

以下は、Flex4 と Flex3 でのコマンドライン
;
;
;Flex4 用
mxmlc -compatibility-version=3.0 -define=CONFIG::Flex4,true -define=CONFIG::Flex3,false Main.mxml

;Flex3 用
mxmlc -define=CONFIG::Flex4,false -define=CONFIG::Flex3,true Main.mxml

Adobe へのリンク

Flex3 : 条件付きコンパイルの使用


posted by lightbox at 2010-10-17 22:13 | Flex | このブログの読者になる | 更新情報をチェックする

2010年10月14日


JavaScript : ネームスペースの作成

記述の仕方によって違ったように見えやすい仕様ですが、結局は、var x = {} で作成する事のできるオブジェクトの配列の定義を、window の下の任意の名前で定義します。

window["myname"] は、window.myname というプロパティとなり、myname.prop_or_method のような形で定義して行きます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
<title>JavaScript</title>
<style>
* {
	font-size:16px;
}
</style>
</head>

<body>

<script type="text/javascript">
function scriptTest(obj) {
	createNameSpace("lbox","1.0","lightbox");

	lbox.msgbox("こんにちは。", lbox.version, lbox.author, obj.parentNode.innerHTML );
}
</script>
<div>
<input type="button" value="実行" onclick='scriptTest(this);'>
</div>
<script type="text/javascript">
function createNameSpace(topName,version,author) {
	if ( !window[topName] ) {
		window[topName] = {}
	}
	window[topName].version = version;
	window[topName].author = author;
	window[topName].msgbox = function(){
		var i, s="", numargs = arguments.length;
		for (i = 0; i < numargs; i++) {
			s += arguments[i] + "\n";
		}
		alert(s + "\n\n" + (new Date()).toLocaleString());
	}

}
</script>

</body>
</html>



posted by lightbox at 2010-10-14 13:28 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする

2010年10月03日


PHP : mb_internal_encoding で SHIFT_JIS(SJIS) は厳密には不可だと思います

昔からそう思ってたのですが、WEB で見てると皆お使いになっているようです。
たしかどこかに書いてあったはずと、php.ini を見てみると。

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
; http://php.net/mbstring.internal-encoding
;mbstring.internal_encoding = EUC-JP
です。 理由は解りませんが、やはり 5c とかまずいのでは無いでしょうか。 あるいは、他のキャラクタセットへの変換で不完全な変換が比較的 多く発生する可能性があるとか、かもしれません。
タグ:PHP トラブル
posted by lightbox at 2010-10-03 20:02 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します


Windows
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり