2015年6月26日金曜日

javascript:10進数とn進数文字列への相互変換

10進数とn進数文字列への相互変換

// 10進数をn進数に変換する
function convDec2Bin(dec, bit) {
    return parseInt(dec, 10).toString(bit);
}
// n進数を10進数に変換する
function convBin2Dec(dec, bit) {
    return parseInt(dec, bit);
}

2015年6月25日木曜日

PHP Excel Reader 日本語が入るとエラー?

PHP Excel Readerで読み込むとデータ件数が0になってしまう現象が発生。
var_dumpすると["sheets"]の配列要素数が0。
どうも日本語が入っているとダメな気がする。
reader.phpのSpreadsheet_Excel_Readerクラスのparese()メソッドを調べ、
return -1で戻る条件を元にネット上を探してたら以下の修正コードに辿り着きました。

reader.phpの470行目付近です。
// Add this line とコメントしている箇所を追加してください。

$uniqueStrings = $this->_GetInt4d($this->data, $spos+4);
                    $spos += 8;
                    for ($i = 0; $i < $uniqueStrings; $i++) {
                       // Special case of buggy excel 2003: Continue Opcode between string & richData
                        if ($spos > $limitpos) { // Add this line
                            $tmp_offset=$spos-$limitpos; // Add this line
                            $spos=$limitpos; // Add this line
                        } else { // Add this line
                            $tmp_offset=0; // Add this line
                        } // Add this line
                        // Read in the number of characters
                        if ($spos == $limitpos) {
                            $opcode = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8 p="">                            $conlength = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8 p="">                            if ($opcode != 0x3c) {
                                return -1;
                            }
                            $spos += 4;
                            $limitpos = $spos + $conlength;
                            $spos += $tmp_offset; // Add this line
                        }

PHP:var_dump 内容をファイルに保存する方法

$data = array("a","b","c");

ob_start();
var_dump($data);
$result =ob_get_contents();
ob_end_clean();
$fp = fopen("dump.txt", "a+" );
fputs($fp, $result);
fclose( $fp );

2015年6月23日火曜日

PHP4 マイクロ秒までのタイムスタンプを取得する

function diffTime() {
list($msec, $sec) = explode(" ", microtime());
$timestamp = (float)$msec + (float)$sec;
return $timestamp;
}

2015年6月16日火曜日

PostgreSQL 格納した文字列のエンコード

select encode('-'::bytea,'hex') , '-'
select encode('~'::bytea,'hex') , '~'

ヤフオク 携帯判定について

ヤフオク 携帯判定について
判定には○・△・×がある
○は「分割購入されていない、もしくは完済されているもの」、
△は「現在分割支払い継続中のもの」、
×は「既にロックがかかっているもの」になります。

PHP:TCPDFで全角ハイフンが出さねば

TCPDFで全角ハイフンを含むPDFを出力すると全角ハイフンが?になる。

マイクロソフト仕様ですと
MINUS SIGN (U+2212, "−") を FULLWIDTH HYPHEN-MINUS (U+FF0D, "-") に割り当てており、これらの変換時にも問題が起こる。

postgreSQLはEUC_JPはx-eucJP-Openのことらしく、
なのでPHPもeucJP-winを基本文字コードで指定せねばならんらしい。

PostgreSQLでの-はEUCコードがa1dd、ユニコードは2212。
これをeucJP-winで変換しようとすると割当がないので?になるんだね。

JSON 文字列をデコードする関数で行う方法もあるようです。
$uniWh = json_decode('"\uFF0D"');//全角ハイフン