PHP 日時を取得したり判定したり

日付を表示したり計算したりするのにつかう関数

//今日の日時(ローカル)を取得する
echo date("Y年m月d日 H時i分s秒");

//任意の日時(ローカル)を取得する
echo date("Y-m-d H:i:s" , mktime(1, 2, 3, 4, 5, 2006));

//日時(ローカル)を数値(int)で取得する
echo idate('Y');
echo idate('Y',time());

//曜日を日本語で取得する
$weeks = array('日', '月', '火', '水', '木', '金', '土');
$week = $weeks[idate("w")];
echo date("Y年m月d日($week)");

//現在のタイムスタンプ(ローカル)を取得する
$now = time();
echo date("Y-m-d H:i:s" , $now);

//日時(ローカル)を配列で取得する
$today = getdate();
print_r($today);

文字から日付を取得したい場合 strtotime を使います。
入力書式はGUNマニュアルを参照

//英文形式の日時からタイムスタンプ(ローカル)を取得する
$timestamp = strtotime('1972-09-24');
print_r(getdate($timestamp));

APIなど、ときどきグリニッジ標準時が必要になることが有ります。

//現在のグリニッジ標準時(GMT)を取得する
echo gmdate("Y-m-d H:i:s");

//グリニッジ標準時(GMT)を取得する
echo date("Y-m-d H:i:s" , gmmktime());

ユーザーが入力した日付がおかしくないかチェックするとき。

//日付が妥当かどうか(入力された日付のチェック)
echo (checkdate(2, 29, 2012))?'True':'False';

画像やデータファイルなんかのファイルの更新時をチェック。 __FILE__で自分自身(phpファイル)を表します。

//ファイルの更新日時のタイムスタンプを取得する
echo filemtime (__FILE__);
0

サンプルデータとして個人情報をテキトーに生成してくれるステキサイト

WordPressのプラグイン開発なり、システム開発なりしてると、サンプルデータがほしくなる時がありますよね。

デバッグ作業では、なるべく大量のデータが欲しくなったりもしますが、それをちまちま作るのは大変です。
とおもったら、こんな便利なサイトが!

なんちゃって個人情報 疑似個人情報生成

もう、素敵すぎ。

0

WordPressのDBや関数を外部ファイルから利用できるようにする

プラグインを開発中、CSVでデータベース中にある、とあるデータをダウンロードできるようにしようとしたのですが、その際どうしてもWordPress外部のプログラムファイルにアクセスする必要があります。

そうすると、WordPressのコアにアクセスしないので、WordPressで用意されている、超便利な関数が利用できなかったり、WordPressのデータベースにアクセスするにも、独自にコードを用意する必要があったり、いろいろ面倒で、というか、そうするとWordPressを使っている値打ちが半減する気がしたので調べてみたら、ありました!

require_once( dirname(__FILE__) . '/wp-load.php' );

たったこれだけ。
とっても参考になったサイト:wordpress関数を外から使うにはwp_load.phpを読み込む

たとえば、プラグインフォルダにあるmy-plugin.phpというファイルから呼び出すときは、 /wp-content/plugins/my-plugin/my-plugin.php のようにルートまでに4階層あるので、

require_once( dirname(dirname(dirname(dirname( __FILE__ )))) . '/wp-load.php' );

と、dirnameを4個つらねて階層分たどればOK!

これで、DBへ面倒な接続なんかしなくても、$wpdbが利用できます。
ていうか、プラグイン開発する際にはないとこまりますね。  

0

WordPress プラグイン開発でつかうURL関係関数

プラグインで実行中のファイルのURL

echo plugin_basename(__FILE__);
// myplugin/downLoad.php のように返してくる。 

__FILE__ は現在のファイルのディレクトリを示します。(URLではない)
ちなみに、WP_PLUGIN_DIR でプラグインディレクトリ(URLではない)を取得できます。
ちなみにちなみに、dirname(__FILE__)で、現在のファイルのディレクトリ(URLではない)を取得できます。

フルパスを得たければ、公式リファレンスでは、

$x = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__));

とあるが、

echo plugins_url('' , __FILE__);

のほうがシンプル

任意のファイルのURLを取得するときは、

echo plugins_url("downLoad.php?data=5", __FILE__);

なかんじで。

URLパラメータ

URLにパラメータを付加したい場合は、

$old_url = $_SERVER['REQUEST_URI'];
$new_url = esc_url(add_query_arg(array('data'=>'5') , $old_url));

上の例では、現在のURLにパラメータを付加しているけれど、それなら、

$new_url = esc_url(add_query_arg(array('data'=>'5')));

でOK パラメータを削除するには、

$new_url = esc_url(add_query_arg(array('data'=>false)));
//または
$new_url = esc_url(add_query_arg('data'));

任意のURLにパラメータ ちなみに、JavaScriptでのパラメータ付加はこちら。
JavaScript URLのパラメータを取得、設定する

0

PHP 値の受け渡しで気をつけること。

$_GET、$_POST、$_COOKIE の値の受け取りは、セキュリティ上気をつけないといけないですが、 毎回コードを書くのも面倒なので。

class common{
   public static function getGET($name){
        $ret = filter_input(INPUT_GET, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
        return '';
    }

    public static function getPost($name){
        $ret = filter_input(INPUT_POST, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }

    public static function getCookie($name){
        $ret = filter_input(INPUT_COOKIE, $name);
        if (isset($ret)){
            $ret =str_replace("\0", "", $ret);//Nullバイト攻撃対策
            return htmlspecialchars($ret, ENT_QUOTES, 'UTF-8');
        }
         return '';
    }
}

で、呼び出すときは、

$data = common::getGet('data');

のようにして使える。   参考:PHP - $_GET, $_POSTなどを受け取る際の処理 参考:PHP開発エンジニア必読!最低限必要なセキュリティ対策

0

JavaScript URLのパラメータを取得、設定する

JQueryで、URLにパラメータを追加する必要があったので、パラメータを取得、設定する関数を用意しました。

下記例では、class="addPrm" の要素をクリックすると、name=tanaka&age=54というパラメータをURLに付加して遷移する、という感じです。

$( '.addPrm' ).on( 'click', function(){
        var params = getParameter();
        params['name'] = 'tanaka';
        params['age'] = 54;
        window.location.href = setParameter(params);
    });
 
    //パラメータを設定したURLを返す
    function setParameter( paramsArray ) {
        var resurl = location.href.replace(/\?.*$/,"");
        for ( key in paramsArray ) {
            resurl += (resurl.indexOf('?') == -1) ? '?':'&';
            resurl += key + '=' + paramsArray[key];
        }
        return resurl;
    }
 
    //パラメータを取得する
    function getParameter(){
	var paramsArray = [];
	var url = location.href; 
	parameters = url.split("#");
	if( parameters.length > 1 ) {
		url = parameters[0];
	}
	parameters = url.split("?");
	if( parameters.length > 1 ) {
		var params	 = parameters[1].split("&");
		for ( i = 0; i < params.length; i++ ) {
		   var paramItem = params[i].split("=");
		   paramsArray[paramItem[0]] = paramItem[1];
		}
	}
	return paramsArray;
    };

getParameter() で現在のページのURLパラメータを取得します。

setParameter() で任意のパラメータ(例ではnameとage)を追加したURLを返します。

参考になったサイト:http://moriroom.my.coocan.jp/site1/?p=1581

追記:2016/02/16
パラメータのあとに#が付いている場合に対応するように、getParameter()を修正

0

WordPress 投稿や固定ページを追加したり削除する

プラグインなどから、プログラムで投稿や固定ページを追加するには、wp_insert_post() を使います。

$post = array(
     'post_name' => $slug ,
     'post_title' => $title,
     'post_content' => $content,
     'post_status' => 'publish',
     'post_type' => 'page',
 );
wp_insert_post($post);

投稿や固定ページをゴミ箱に入れるには、wp_delete_post() を使います。

wp_delete_post($post_id);

投稿や固定ページを完全に削除するには、wp_delete_post() の第二パラメータにTrueを追加。

wp_delete_post($post_id , true);
0

WordPressでプラグインなどからユーザー登録する方法

ユーザーの登録するときは、 wp_insert_user() 更新するときは、 wp_update_user() を使います。

        $userdata = array(
            'first_name'    =>  '菊池',
            'last_name'    =>  '桃子',
            'user_login'  =>  'momoko',
            'user_email'    =>  'momoko@email.com',
            'role'    =>  'subscriber',
            'user_pass'   =>  'password'
        );
        $user_id = username_exists( 'momoko');
        if ( $user_id ) {
            $userdata['ID'] = $user_id;
            $user_id = wp_update_user( $userdata );
        }else{
            $user_id = wp_insert_user( $userdata );
        }

username_exists('ユーザー名') で、既に登録済みかを確認できます。
存在していたら、そのユーザーID、 存在してなければ、nullになります。

rorleについて、情報収集に手間取ったのでメモ

管理者: administrator
編集者: editor
寄稿者: author
購読者: subscriber

かならず半角小文字でいれる。(下記参考にしたがって、一文字目を大文字にしたらうまく行きませんでした。)
参考:https://codex.wordpress.org/Roles_and_Capabilities#Administrator

0