Archives by date

You are browsing the site archives by date.

【PHP】日付文字列をパースして情報を取得する。

めも。

date_parse()関数を用いる。

$date = '2013-12-09 10:10:10.002345';

$info = date_parse($date);

var_dump($info);

↓

array(12) {
  ["year"]=>
  int(2013)
  ["month"]=>
  int(12)
  ["day"]=>
  int(9)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(10)
  ["second"]=>
  int(10)
  ["fraction"]=>
  float(0.002345)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
}

strtotime()関数に渡せるフォーマットであれば解析してくれる。

 

【MySQL】1文字単位で文字を置換する。

めも。

TRANSLATE()関数を用いる。

TRANSLATE('000111222333', '0123, 'aBcD');

例えば上記のような使い方をした場合、「000111222333」中の「0」は「a」、「1」は「B」、「2」は「c」、「3」は「D」に置換される。

次に下記のような使い方をした場合。

TRANSLATE('000111222333', '0123, 'aBc');

「3」に対応する文字列が存在しないため、「000111222333」中の「3」は空白文字列に置き換わる。

 

【PHP】JSONエンコード、デコード処理中に発生したエラーを取得する。

めも。

json_last_error()を用いる。

$str = '{"hoge": "foo", "piyo"}';

$json = json_decode($str);

$err = json_last_error();

var_dump($err);

↓

int(4)

返却される整数値に対応する定数は下記の通り。
上から順に0,1,2,3,4,5と対応する。

JSON_ERROR_NONE
JSON_ERROR_DEPTH
JSON_ERROR_STATE_MISMATCH
JSON_ERROR_CTRL_CHAR
JSON_ERROR_SYNTAX
JSON_ERROR_UTF8

 

【PHP】秘密鍵を用い、指定したアルゴリズムでハッシュを生成する。

めも。

hash_hmac()関数を使う。

$secretKey = 'foobar';

$data = 'hogehoge';
// 秘密鍵を用いてハッシュを生成
$hash_hmac = hash_hmac('sha512', $data, $secretKey);
// 秘密鍵を用いないでハッシュを生成
$hash = hash('sha512', $data);

var_dump($hash, $h);

↓

string(128) "ccfb4235adbcaa506f944e641b8f20ee31ce2f5df145c22d85155be382f3ef65e7e1e42bd82385b10e98019a630e3ed65d217f639541e9924426d59a96e9c9fd"
string(128) "2b7e36b16f8a849ef312f9ef5ff9b3f4281a8681d0657150899f1113a0eecfdbb4491da763159055b55e122e85281415b11897d268e124f9ef2b40457a63a465"

当然結果は異なる。

 

【PHP】すべての定義済み変数を配列で取得する。

めも。

$name = 'yamada';
$age = '20';
$email = 'noreply@example.com';

$vars = get_defined_vars();

var_dump($vars);

↓

array(3) {
  ["name"]=>
  string(6) "yamada"
  ["age"]=>
  string(2) "20"
  ["email"]=>
  string(19) "noreply@example.com"
}

そのまんまやね。

 

【PHP】指定した長さ、値で配列を埋める。

めも。

■配列長が10になるまで右側を0で埋める

$arr = array(1,2,3);

$arr = array_pad($arr, 10, 0);

var_dump($arr);

↓

array(10) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(0)
  [4]=>
  int(0)
  [5]=>
  int(0)
  [6]=>
  int(0)
  [7]=>
  int(0)
  [8]=>
  int(0)
  [9]=>
  int(0)
}

■配列長が10になるまで左側を0で埋める

$arr = array(1,2,3);

$arr = array_pad($arr, -10, 0);

var_dump($arr);

↓

array(10) {
  [0]=>
  int(0)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
  [4]=>
  int(0)
  [5]=>
  int(0)
  [6]=>
  int(0)
  [7]=>
  int(1)
  [8]=>
  int(2)
  [9]=>
  int(3)
}