生き方。

今日は技術的な記事ではないです。
上記の動画をみていろいろ自分なりに生き方について考えました。

いま私生活を綴ったブログは別ブログに切り離して続けています。
Twitterなどで発信することを減らしました。今までの発信の仕方から
試行錯誤しながら変えていきます。

尚、動画から得たことはいろいろありますが、敢えて多くは書きません。一つ言えることは言葉は大事です、言葉を選んで使う大切さを痛感したという事です。

 

全ての定義済の変数を配列で返す

全ての定義済の変数を配列で返す関数です。
全てなのでとってきて欲しくないものまでも取ってきます。
なのでそういうのはunsetします。
ちなみに似たようなのでcompactという関数がPHPには存在します。

何に使用する場合に便利かは人それぞれ違いますが
自分の場合はテンプレートエンジンを使用するときに重宝してます。
テンプレートエンジン・・・TwigやSmartyなど

<?php

$a = "abc";
$b = array(1,2,3);
$c = 123;

$vars = get_defined_vars();
unset($_COOKIE);
unset($_POST);
unset($_GET);
unset($_FILES);
unset($GLOBALS);
foreach ($vars as $key => $value) {
    var_dump($key);
    var_dump($value);
}
//...
var_dump($vars);

 

WordPressの全記事の中からランダムで記事をピックアップしてツイートする。

WordPressの全記事の中からランダムで記事をピックアップしてツイートする。
実際、自分の階層に合わして呼び出しを変更してください。
なお、さくらレンタルサーバーでクロンの設定をして自動投稿できます。
ライブラリの設置などは割愛してます。

<?php
// cron:: cd /home/user/www/zip358.com/site/tw; /usr/local/bin/php tw.php

require_once ('../../wp-load.php');
require "vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

$consumer_key = "XXXXXXXXXXXXXX";
$consumer_secret = "XXXXXXXXXXXX";
$access_token = "XXXXXXXXXXXXXX";
$access_token_secret = "XXXXXXXXXXXXXXX";

$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);



$args = array(
	'posts_per_page' => 1,
    'orderby' => 'rand'
);

$posts = get_posts($args);
foreach ( $posts as $val ){
    $href =  get_permalink($val->ID);
    $title = get_the_title($val->ID);
    $res = $to->post("statuses/update", array("status" => $title . " " . $href));
}

jQuery独自プラグイン基本サンプル2

忘れやすい自分のためにメモとして残しときます。

(function($){

    $.fn.smp = function (options) {
        var config = {
            text:"おいら"
        };

        var cfg = $.extend({}, config, options);

        cfg.text = cfg.text + "のお金";
        return $(this).html(cfg.text);
    };
})(jQuery);


$("#hoge1").smp({text:"ぼく"});
$("#hoge2").smp();

年賀状CSVを作りました。SJISで保存してください。

https://zip358.com/tool/nenga/

ブラウザ上で完結しています。
禁則処理などはありません、ただ純粋に入力したものが
CSV形式の文字列で出力されます。

これ何のために使えるかといえば
https://nenga.yu-bin.jp/

こちらのサイトで住所録を登録する際に使用できます。

タイトルにも描きましたがSJISの文字コードで出力をお願い致します、
また、データベースに保持などはしていないため
リロードしてしまうと全てのデータが消えてしまいます。

これを作った経緯。
自分が郵便年賀.jpで登録するのが面倒だったため作りました。

javascriptを勉強中

var a = 3;
var b = 10;
var obj = {
        hoge:function(a){
            a = a + a;
            return a;
        },
        a:a = a && 5,
        b:b = b || 3
    };
    
console.log(obj.hoge(2));
console.log(obj.a);
console.log(obj.b);

上記のCodeを動かすと仕事と表示されます(笑)、4,5,10と表示されます。
何故そうなったかを考えるとキリがないのでそういうものだと
思ったほうが良いかもしれないです。

説明するとhogeはオブジェクトです。あとは変数とIF文の省略系を
記述しているだけです、実際は=もいらないですが・・・。
わかりやすく自分なりに記載したつもりです。

javascriptライブラリってこういうのが何百行も記載して成り立っていますが
概念はこういう事です。自分は基本的に概念しか覚えないのです。
何故、そうしているか・・・自分が怠惰な人間だからです。

 

ブロックエディタとクラッシックエディタ

WordPress5.0になりそろそろブロックエディタに切り替える準備を
しているみたいだけど、各プラグインはまだ対応していないみたいだな…。
そもそもブロックエディタってどうなのか?

クラッシックエディタの方が良くない?
っていう意見が多いのはおそらく使い慣れたからとプラグインが
対応していないのが原因なのだけど、対応すれば
ブロックエディタでも良いかもなと思っています。

WordPress5.0・・・仕様もだんだん変わっていくのかな。
ついていくには触れるべしだけど、
自分は当分クラッシックエディタで良いです。

 

jQueryの基礎1

世の中、javascriptへの原点回帰が進んでいますが
だからといって、jqueryが無くなるかといえばそうでもない気がします。

トイウコトデ、jqueryの基礎的なデモページを作成しました。
ご参考程度どうぞ。
これから毎週1回以上、プログラムのデモ的な内容をUPしていきます。
自分の勉強や復習の意味合いも兼ねています。
プログラム言語はPHP、JS、C#が主の掲載となります。

https://zip358.com/tool/demo1/demo1.php

$(function(){
    $(".alert.alert-danger").html("未記入です");
    $("input").keyup(function(){
        if($(this).val()){
            $(".alert.alert-danger").eq($("input").index(this)).html($(this).val());
        }else{
            $(".alert.alert-danger").eq($("input").index(this)).html("未記入です");
        }
    });
    $("input").blur(function(){
        if($(this).val()){
            $(".alert.alert-danger").eq($("input").index(this)).html($(this).val());
        }else{
            $(".alert.alert-danger").eq($("input").index(this)).html("未記入です");
        }
    });
    $("input").focus(function(){
        if($(this).val()){
            $(".alert.alert-danger").eq($("input").index(this)).html($(this).val());
        }else{
            $(".alert.alert-danger").eq($("input").index(this)).html("未記入です");
        }
    });    
});

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法。

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法
10年ぐらいまえのコードを見直して改善したコードが下記になります。
10年前はクラスを使わない方法で構築したのだけど、今回はクラスの概念を
使って構築。ここ何年かで自分のコーディングの技術は上がっているかといえば
そうでもないですが、昔よりかは技術の幅は広がっていると思いたいw
※qiita日付は数年前にUPしたのですけど、コード自体は10年前のコードです。

 

<?php
//五分置きのクロンを走らせてください。
//php5.6以上推奨? エラーの場合:explodeを見直してください 
class cronphp2{
    
    public $set = array(
            array("file"=>"/home/tool/test1.php","year"=>"*","month"=>"*","day"=>"*","hour"=>"*","minute"=>"*"),
            array("file"=>"/home/tool/test2.php","year"=>"2018","month"=>"7","day"=>"7","hour"=>"*","minute"=>"*/10"),
            array("file"=>"/home/tool/test3.php","year"=>"*","month"=>"*","day"=>"7","hour"=>"7","minute"=>"7")
        );
    
    
    function __construct(){
        if(is_array($this->set)){
            foreach ($this->set as $key => $value) {
  
                    if(!$this->chk($value["year"],"year"))continue;
                    if(!$this->chk($value["month"],"month"))continue;
                    if(!$this->chk($value["day"],"day"))continue;
                    if(!$this->chk($value["hour"],"hour"))continue;
                    if(!$this->chk($value["minute"],"minute"))continue;
                    if(!$value["file"])continue;       
                    $h = @shell_exec("/usr/local/bin/php -f ",$value["file"]);
                    print $value["file"];
                    var_dump($h);
                
            }
        }
    } 
    
    function chk($q1="",$q2=""){

        if(!$q1)return false;
        if(!$q2)return false;
        switch ($q2) {
            case "year":
            case "month":                
            case "day":   
                $ren = array("year"=>"Y","month"=>"n","day"=>"j");
                if($q1==="*"){return true;}
                if(is_numeric($q1)){
                    if((int)$q1 == date($ren[$q2])){return true;}
                }else{
                    return false;
                }
                break;
           case "hour":
           case "minute":
                $ren = array("hour"=>"H","minute"=>"i");
                if($q1==="*"){return true;}
                if(is_numeric($q1)){
                    if((int)$q1 == date($ren[$q2])){
                        return true;
                    }else{
                        return false;
                    }
                }else{
                    if(preg_match("/\*\//",$q1)){
                        $q = explode("*/",$q1)[1];
                        if(date($ren[$q2])%(int)$q==0){
                            return true;
                        }else{
                            return false;
                        }                       
                    }
                    return false;
                }
                break;
            default:
                return false;
                break;
        }
        
        return false;
     }
}
$crn = new cronphp2();