Translate

ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

2016年9月6日火曜日

【PHP】fopenでフォルダ内にファイルを作る時によくやる失敗

癖でよくやってしまうのでメモ

ターゲットとなるフォルダはtmpという名前。その中に、hoge.txtを作りたい。
tmpフォルダのパーミッションは正しいとする

fopen("/tmp/hoge.txt",'w');//失
fopen("./tmp/hoge.txt",'w');//成功
fopen("tmp/hoge.txt",'w'); //成功

2016年7月18日月曜日

アプリがリリースされたらメール通知されるサービス

あんまり配信されないので、暇を持て余してメールで通知するサービスを作ってみました。

http://appinfosearch.boy.jp/

一時間に一度appstoreのapiをたたいて、一致したらメールを送ります。
lolipopのお試し期間が10日なので、それを過ぎてもアプリ配信されなかったら有料契約かな・・・

2016年5月10日火曜日

数値にカンマをつける色々【javascript】【php】【mysql】

本当はやりたくないんです。
床でジタバタ転げまわっても「やれ」といわれたときに。

//javascript
number.toLocaleString();

//php
number_format($number);

//mysql
select FORMAT(number ,0) from table

2016年2月19日金曜日

【php】declare&&ticksと分かり合えるのには時間がかかる気がする

declareについて調べている途中。

<?php
function ticks_echo() {
   static $count_of_ticks = 1;
   echo 'ticks >> '.$count_of_ticks."<br />";
   $count_of_ticks++;
}
register_tick_function( 'ticks_echo' );
declare( ticks = 1 ) {
   for($n =1;$n<4;$n++)
   {
      echo "何かしらの処理:".$n."回目<br />";
   }
}

/*
僕の予想:
何かしらの処理:1回目
ticks >> 1
何かしらの処理:2回目
ticks >> 2
何かしらの処理:3回目
ticks >> 3


実際の結果:
何かしらの処理:1回目
ticks >> 1
ticks >> 2
何かしらの処理:2回目
ticks >> 3
ticks >> 4
何かしらの処理:3回目
ticks >> 5
ticks >> 6
ticks >> 7
ticks >> 8

*/
えっ、こいつら、ボディランゲージ通じない感じ。
どうやら、declareは{}ブロックの終わりでも一度評価されるよう。

つまり、
declare( ticks = 1 ) {
   for($n =1;$n<4;$n++)
   {
      echo "何かしらの処理:".$n."回目<br />";
   }
}
の挙動は

何かしらの処理:1回目
ticks >> 1//forの最初のecho
ticks >> 2//forの最初の{}閉じ
何かしらの処理:2回目
ticks >> 3//forの2回目のecho
ticks >> 4//forの2回目の{}閉じ
何かしらの処理:3回目
ticks >> 5//forの3回目のecho
ticks >> 6//forの3回目の{}閉じ
ticks >> 7//forの4回目の{}閉じ(forの条件式が$n===4でfalseなので、中の文は実行されず)
ticks >> 8//declare最後の{}閉じ

となっている(のでしょう)。
その辺を考えて使わないと、痛い目にあいそう。
というか、時間計測くらいしか使いどころが分からない・・・。

2016年2月18日木曜日

【php】配列に何種類の値が入っているか

array_count_valuesか、array_uniqueを使う。

$array = [1,2,3,4,5,6,7,8,9,10,"a","b","c","d","",1,2,3,4,5,6,7,8,9,10];

echo "array_count_values:".count(array_count_values($array));//15
echo "<br />";
echo "array_unique:".count(array_unique($array));//15

//var_dump(array_count_values($array));
//array(15) { [1]=> int(2) [2]=> int(2) [3]=> int(2) [4]=> int(2) [5]=> int(2) [6]=> int(2) [7]=> int(2) [8]=> int(2) [9]=> int(2) [10]=> int(2) ["a"]=> int(1) ["b"]=> int(1) ["c"]=> int(1) ["d"]=> int(1) [""]=> int(1) }
//var_dump(array_unique($array));
//array(15) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) [7]=> int(8) [8]=> int(9) [9]=> int(10) [10]=> string(1) "a" [11]=> string(1) "b" [12]=> string(1) "c" [13]=> string(1) "d" [14]=> string(0) "" }

カウントする対象は、文字列か数値のみ

2016年2月10日水曜日

【php】json_decodeで配列にならない

先日の続き。
phpexcelで作った配列をjavascriptにJSON形式で渡して、その後さらに$_postの内容をphpに渡すとき、
json_decode($_POST["array"]);
としたのだが、うまく配列にならない。
json_decode($_POST["array"],true);
配列としたいのなら、パラメータに属性を渡して上げなくてはいけなかった。
急いでると、簡単なところでつまずきます。

2016年2月1日月曜日

【phpMyAdmin】【excel】csvをインポートすると先頭の文字が消える

東京都○○区・・・というデータをインポートするが、
都○○区となっていて仰天。

エクセルからcsvを書き出し、phpMyAdminにインポートしようとすると、ファイル先頭の2文字が消えることがある。
文字化けとかではなく、文字欠け。ぐぐっても文字化けの問題ばかりひっかかるので、一応メモ。

エクセル → ヘッダ削除 → CSVにエクスポート → テキストエディタでエンコードをUTF-8に変更 → インポート → 文字欠けで死亡!

悪さが起きるのがファイル最初の文字なので、BOMがゴニョゴニョとしているのかもしれないが、
とりあえず、バッドノウハウだけ書いておこう。

エクセル → CSVにエクスポート → テキストエディタでエンコードをUTF-8に変更 → インポート →

インポート時、phpMyAdminの部分インポートというところで

Skip this number of queries (for SQL) or lines (for other formats), starting from the first one:

の値を「1」
とする。最初の一行をヘッダ扱いで無視するよ・・・ということ。これでたぶん問題なし!
根本的に解決してないので、モヤモヤしますが。

2016年1月27日水曜日

【php】配列をCSVに書き出し&文字コード変換

表題どおり。
配列内の要素を一つ一つshiftjisに変換してから書き込んでいます。
日本語文字コードを一つに統一して欲しいのだけど、血を血で洗う戦争が起きたりするのでしょうか。
    $csv = new SplFileObject( "csv.csv", "w" );
    foreach ($array_for_csv as $raw_array) {
        $encodedarray =array();
        foreach ($raw_array as $rawtext) {
            $encodedarray[] = mb_convert_encoding($rawtext,'SJIS');
        }
        $csv->fputcsv($encodedarray);
    }
    fclose($csv);