• linux command よく使うやつ (centos)

    書き換えてからコピーできる 特定の文字列含むファイ […]

    書き換えてからコピーできる

    特定の文字列含むファイルを検索するコマンド

    特定の文字列含むファイルを拡張子指定で検索するコマンド

    ディレクトリ(strage)を除外して特定の文字列(admin)含むファイルを拡張子指定で検索するコマンド

    サブディレクトリ以下の特定ファイルを一括して削除する

    ファイル名で指定ディレクトリ以下を検索

    日付で検索する (10日以内に編集)

    ディレクトリを除外して日付で検索する (3日以内に編集)

    ディレクトリを除外して時間で検索する (2時間以内に編集)

    更新日順に表示する

    更新日順にディレクトリを除外して表示する

    • find -type f はファイルのみを対象とする
    • find -print0 は検出されたファイルのフルパスをNULLキャラクターで分割して出力する
    • xargs -0 もしくは xargs --null 入力ストリームの分割はNULLキャラクターを用いる
     
    特定の日に更新したファイルを見つける
     find . -type f -name "*.php" -newermt "2020-09-25"
    

    一括変更 (今いるディレクトリの )

    パーミッション変更

    ファイル移動 、名前変更

    コピー A to B

    viエディタに行番号

    
    

    全てのphpが755に、htmlは644になる

    ローカルのファイルをリモートにアップロード
    # -a オプションでアスキー転送 (デフォルトはバイナリ転送)

    FTPserver : ftp.exzample.daa.jp
    FTP account : daa.jp-user

  • 公開Webサイトから画像を抽出,相対パスに従って保存,zipでダウンロード

    webページの画像を一括でダウンロードできます 画 […]

    webページの画像を一括でダウンロードできます

    画像はページの相対パスに従ってディレクトリが作成され,その中に保存されます

    画像一括ダウンロード

  • 読み込み時に実行されるscriptの実行順

    jQuery(function ($) { // […]

     
    
    
    
      jQuery(function ($) {
      // その他の処理
        $(window).on("load", function() {
        // 画像等全て読み終えた時の処理
          var h = $('.color-v img').height();
          console.log(h);
        });
      });
    
        $(function () {
          //DOM構築後実行 画像等は待たない
          $('header').append("$(fnction)");
        });
    
        $(document).ready(function () {
          //DOM構築後実行 画像等は待たない
          $('header').append("ready");
        });
    
        document.addEventListener('DOMContentLoaded', function () {
          //最初の HTML 文書の読み込みと解析が完了したとき
          $('header').append("addEventListener");
        });
    
        window.addEventListener('load', function() {
             $('header').append("window addEventListener");
        });
    
    
    // 特定の要素を読み込んでから実行
      const MAX_RETRY_COUNT = 10;  //待ち時間上限
      var retry_counter = 0;
      var set_interval_id = setInterval(findTargetElement, 1000);
       function findTargetElement() {
          retry_counter++;
          // 要素がMAXリトライ値になっても見つからない場合、インターバルを削除
          if(retry_counter > MAX_RETRY_COUNT ) {
              clearInterval(set_interval_id);
          }
                                                              // 読み込みを待つ要素名
          var diff_container_elements = document.getElementsByClassName('new_pl_9');
          if(diff_container_elements.length > 0) {
              clearInterval(set_interval_id);
              // ここにやりたい処理を書く
    
          }       
       }
    
     
    実行順

    addEventListener

    window addEventListener

    $(fnction)

    ready

    $(window).on

  • MYSQL直前の日曜日は何日か

    SELECT CURDATE() , DATE_F […]

    
    
     SELECT CURDATE() , 
     DATE_FORMAT(ADDDATE(NOW(), 0), "%w") AS today,
    CASE 0  -- 月曜にしたければ1
     WHEN DATE_FORMAT(ADDDATE(NOW(), 0), "%w")  THEN ADDDATE(CURDATE(), 0)
     WHEN DATE_FORMAT(ADDDATE(NOW(), -1), "%w") THEN ADDDATE(CURDATE(), -1)
     WHEN DATE_FORMAT(ADDDATE(NOW(), -2), "%w") THEN ADDDATE(CURDATE(), -2)
     WHEN DATE_FORMAT(ADDDATE(NOW(), -3), "%w") THEN ADDDATE(CURDATE(), -3)
     WHEN DATE_FORMAT(ADDDATE(NOW(), -4), "%w") THEN ADDDATE(CURDATE(), -4)
     WHEN DATE_FORMAT(ADDDATE(NOW(), -5), "%w") THEN ADDDATE(CURDATE(), -5)
     WHEN DATE_FORMAT(ADDDATE(NOW(), -6), "%w") THEN ADDDATE(CURDATE(), -6)
    END AS start_week -- 直前の日曜日
    
    
  • wordpress 管理画面が重たい

    $ top ←メモリ使用量 mysql php-f […]

    $ top   ←メモリ使用量
     mysql
     php-fpm ← 複数ある
    
    mysql> show variables like 'table_definition_cache';
    +------------------------+-------+
    | Variable_name          | Value |
    +------------------------+-------+
    | table_definition_cache | 1400  |
    +------------------------+-------+
    
    mysql> show variables like 'performance_schema';
    +--------------------+-------+
    | Variable_name      | Value |
    +--------------------+-------+
    | performance_schema | ON    |
    +--------------------+-------+
    
    # vi /etc/my.cnf
    
    [mysql.d]
    # 以下を追記
    table_definition_cache = 400
    performance_schema = 0
    
    #vi /etc/php-fpm.d/www.cnf
    
    pm = static
    pm.max_children = 2
    pm.max_requests = 500
    
    # service php-fpm restart

     

    https://autovice.jp/articles/104

  • モーダルを閉じさせない、コードを書いて開く、コードで閉じる(Bootstrap)

    $(‘#nameModalCenter’).on( […]

    
    
      $('#nameModalCenter').on('hide.bs.modal', function (e) {
         // 閉じられる前のイベント、XでCloseとBackDropもこれでキャッチできる
    
      $('#name_modal_close').click( function() {
        // これは閉じない
        return false;
    
      jQuery(document).on('click', '#name_modal_close', function() {
        // これは閉じる(というか、閉じてからここに来る)
        return false;
    
    
    

    jQueryでモーダルを開く,閉じる

    
    
     $('#nameModalCenter').modal();//modalを出す
    
     $('#nameModalCenter').modal('hide'); //閉じる
    
    
    
  • 都道府県 / 州 / 郡 woocommerce

    翻訳ファイルの修正 WooCommerceの日本語 […]

    翻訳ファイルの修正

    WooCommerceの日本語ファイル
    /wp-content/languages/plugins/woocommerce-ja.mo

    woocommerce-ja.po が編集用のファイルなので、このファイルをダウンロード

    翻訳ファイルの編集ソフト「Poedit」 をインストール
    書き換え後に ファイル MOにコンパイル → woocommerce-ja.mo をアップして上書き

  • javascript オブジェクト 追加、結合

    let obj4= {age: 10, weigh […]

    
    let obj4= {age: 10, weight: 20};
     
    obj4 = {...obj4, ...{name:'ichiro', height:199} }
    obj4['tel'] = 9494;
    
    console.log(obj4);
    
    
    {age: 10, weight: 20, name: 'ichiro', height: 199, tel: 9494}
    
  • [Vue.js, JavaScript]クリックされた要素本体を取得

    $eventというがネイティブな変数 <a […]

    $eventというがネイティブな変数

    
      <a @click.prevent="show_after(post.id,$event)" >
    
      show_after(post_id, event){
          console.log(event.target);
          $(event.target).prev().find('span.hidden').removeClass('hidden');
      }
    
  • laravel8 クエリービルダー サブクエリ 複数条件 算術演算 groupBy複数 orderBy DESC混在 生のSQL chank

    サブクエリ 変数はたいていグローバル化しないと渡せ […]

    
        サブクエリ
        変数はたいていグローバル化しないと渡せない
    
        $ranks_tags = DB::table('ranks_tags')->where('label',$this->range_w);
    
            DB::table('post_tags as p')->select(
                DB::raw(   //この中の''は1セット。最初と最後のみで全体を囲む
                'p.fave_id , p.tag_id, f.name , f.cnt_cheer , s.before_cnt_cheer
                , f.cnt_cheer - s.before_cnt_cheer AS incre_cheer 
                , f.cnt_post, s.before_cnt_post
                , f.cnt_post - s.before_cnt_post AS incre_post
                , cnt_share
                , s.id as ranktag_id'
                )
            )
            ->LeftJoin( 'tags as t' , 'p.tag_id' ,'t.id')
            ->LeftJoin( 'faves as f', 'p.fave_id','f.id')
            ->LeftJoinSub($ranks_tags, 's', function ($join) {
                $join->on('s.tag_id' , 'p.tag_id' );
                $join->on('p.fave_id' , 's.fave_id');
            })
            ->groupBy('p.tag_id' , 'p.fave_id' , 'incre_cheer' , 'ranktag_id' )
            ->orderBy('p.tag_id' ,'asc')
            ->orderBy('incre_cheer' ,'DESC')
            ->orderBy('cnt_post' ,'DESC')
            ->limit(999999)
            // ->toSql(); ←素のSQL文を書き出せる
            ->chunk( $this->max_lows, function ($tag_fave) {
                foreach ($tag_fave as $key => $row) {
                    // DB::table('tags')
                    //     ->where('id', $tags->id)
                    //     ->update(['created_at' => $this->ranges['day']]);
                    var_dump($key, $row );
    							
    			}
                return false; //← これで終わる
    		});
    
  • wsl2 Apache バーチャルホスト設定

    Windowsのhosts ファイルに追加 172 […]

    Windowsのhosts ファイルに追加

     
      172.25.29.190       sample.org
    
    

    ※↑ipアドレスはUbuntu起動時のもの、127。0。0.1 ではないことに注意

    
    
    <VirtualHost *:80>
        ServerAdmin webmaster@sample.org
        ServerName sample.org
        ServerAlias sample.org
        DocumentRoot /var/www/web/public
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
       <Directory /var/www/web/public>
            AllowOverride All
            Options All
            Require all granted
        </Directory>
    </VirtualHost>
    
    
    
  • ページを遷移する前に unloadイベント

    window.addEventListener(‘ […]

    
       window.addEventListener('beforeunload', (event) => {
            event.preventDefault();
            // このページを去る前にローカルストレージを削除;
            localStorage.removeItem('interValId');
        });
    
    
  • lalavel8 サブクエリー (クエリビルダー)

    $sql = “SELECT ←普通のSQL文 F […]

    
     $sql = "SELECT ←普通のSQL文
     FROM
     WHERE " ; 
     
    
     DB::table('app_user_user AS uu')
            ->select( ~ ~ 
    
        ) ->leftJoin( DB::raw("( $sql  ) AS sc ") , 'uu.id', '=', 'sc.user_id')
    
    
    
    	$juhuku = DB::table('issuers')
    		->orWhere(function($query) {
    			$query->where('tel', $this->tel[$this->j])
    			->where('user_id', '!=', $this->user_id);
    		})
    		->orWhere(function($query) {
    		$query->where('email', $this->email[$this->j])
    		->where('user_id', '!=', $this->user_id);
    	})->exists() ;
    
    



    select exists( select * from `issuers` where ( `tel` = '230-0234-5432' and `user_id` != 4604 ) or ( `email` = 'izumo@reqw.wer' and `user_id` != 4604) ) as `exists`

  • localStorage 配列の保存方法

    そのまま保存するとデータ構造が書き換えられて配列が […]

    そのまま保存するとデータ構造が書き換えられて配列がcsv形式になってしまう。

    
    localStorage.setItem('stockoutData', JSON.stringify(stockoutData)); //保存
    
    let stockoutData = localStorage.getItem('stockoutData'); //取得
         let stockouts = JSON.parse(stockoutData);  //変換
    
    
  • wordpress マルチサイト サブディレクトリ 表示されない

    投稿記事に過去1ヶ月よりも前の日付があると出てこな […]

    投稿記事に過去1ヶ月よりも前の日付があると出てこないので、SQL文で一括で昨日とかにする

    
    update `wp_posts` set post_date='2022-01-01 12:12:12'
    ,post_date_gmt = '2022-01-01 03:12:12'
    
    
  • Notice: ob_end_flush(): failed to send buffer of zlib output compression

    対処方法 # vi /etc/php.ini __ […]

    対処方法

    
     # vi /etc/php.ini
    _________________________
    
     zlib.output_compression = Off ← こうする
    _________________________
     # systemctl restart httpd
    
    

    透過的なページ圧縮を行うかどうかを指定します。

    Onを指定した場合、ブラウザが”Accept-Encoding: gzip”または”deflate”ヘッダを送信する際に、ページが圧縮されます。

  • WSL2でUbuntuの初回起動時に0x800701bcが出る

    Linux カーネル更新パッケージのダウンロード […]


    Linux カーネル更新パッケージのダウンロード

    手順 4 – Linux カーネル更新プログラム パッケージをダウンロードする

    最新のパッケージをダウンロードします。

    x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ
    をいれてたぶん解決。

  • has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

    「CORSポリシーによってブロックされています:要 […]

    「CORSポリシーによってブロックされています:要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。」
    ヘッダーがないのはフロント側ではなく、サーバー側のこと

    サーバー側のファイルの先頭にこれを書くだけでいい

    
    
    <php
      header('Access-Control-Allow-Origin: *');
    
    
  • URLパラメータ、クエリストリングの書き換え

    //URL書き換え var anker = 1; […]

    
    //URL書き換え
        var anker = 1;
        var issuer_no = 1;
        history.replaceState('','','?issuer_no='+issuer_no + '&bank_no=' + bank_no + anker);
    
    
  • Trying to get property ‘default_payment_method’ of non-object

    users → stripe_idがnullでなけ […]

    users → stripe_idがnullでなければ登録に失敗する

  • javascript 日付文字列の日付フォーマットを変更する

    2021-07-26 → 2021年7月26日 v […]

    2021-07-26 → 2021年7月26日

    
    
    var datestr = "2021-07-26";
    var date = Date.parse(datestr);
    var date = new Date(date);
    
      format = date.getFullYear() + '年';
      format +=( date.getMonth() + 1 ) + '月';
      format += date.getDate() +'日';
      
      console.log(format);
    
  • laravel非ログインならユーザー登録を出さない

    管理画面用ならばデフォルトの逆なので、ログインユー […]

    管理画面用ならばデフォルトの逆なので、ログインユーザーのみが新規登録出来るようにする

    [./app/Http/Middleware/RedirectIfAuthenticated.php]

    
    
    foreach ($guards as $guard) {
        
        if($_SERVER['REQUEST_URI'] == '/register' ) {
            // 会員作成なら
            if (Auth::guard($guard)->check()) { 
                return $next($request);
            }else{
                //ログインしてなければリダイレクト
                return redirect(RouteServiceProvider::HOME);
            }
        }else{
            
            if (Auth::guard($guard)->check()) { 
                //ログイン中ならtrue
                return redirect(RouteServiceProvider::HOME);
            }
        }
    }
    
  • WP_Query から投稿記事やらアイキャッチやらタグを取得

    $the_query = new WP_Query […]

    
    $the_query = new WP_Query($args);
      foreach($the_query->posts as $key=>$value){
        var_dump($value->ID, $value->post_date, $value->post_content);
    
       $thumb_id = get_post_thumbnail_id($postID);      // 指定した投稿のアイキャッチ画像の画像IDを取得
    	$thumb_img = wp_get_attachment_image_src($thumb_id );
    	$src = $thumb_img[0]; 
    
    
    	$postID = get_the_ID();
    			$fivesdrafts = $wpdb->get_results( 
    				"SELECT name , slug
    				FROM $wpdb->term_relationships
    				LEFT JOIN $wpdb->term_taxonomy  USING (term_taxonomy_id)
    				LEFT JOIN $wpdb->terms USING(term_id)
    				WHERE object_id = $postID
    				AND taxonomy = 'post_tag'"
    			);
    			 foreach ($fivesdrafts as $key => $val) {
    				 $tag .= $val->slug . $val->name ; // スラッグ。タグ
    			 }
    
  • Gitをインストール してpush

    Gitをインストールする centos7の場合ここ […]

    Gitをインストールする

    centos7の場合ここ

  • コミットしたいディレクトリに移動してinitする

     		  
       Initialized empty Git repository in /path/to/already/.git/  
    
  • 新規ディレクトリなら,まずはセットアップ

  • 除外ディレクトリ → gitへpushuしない
    .gitignore の書き方。ファイル/ディレクトリの除外

  • github上で新規レポジトリを作成( リポジトリの名前は ディレクトリの名前にする)

    リモートリポジトリの追加

  • ローカルにリモートリポジトリの情報を追加
  • ステージする
  • コミットする
  • リポジトリが有るならこれでPush

    -f で強制

  • Git 新規ディレクトリにリモートから pullしたい

  • 新規ディレクトリなら,まずはセットアップ


    親ディレクトリまで移動

    ダウンロードしたい リポジトリ指定

    git pullリモートレポジトリとローカルレポジトリを同じ状態にする

  • 鍵認証(pushでパスワードを聞かれないよう)にする

    • ローカルの開発サーバーで鍵をつくる(名前は指定したほうがいい)
    • config ファイルの作成

                Host github github.com
                HostName github.com
                IdentityFile ~/.ssh/github_rsa
                User git 
              
    • 600にする

    • .gitconfig をつくって 600にする

        vi ~/.gitconfig 
         [user]
              name = アカウント
              email = メアド
      
         [url "github:"]
            InsteadOf = https://github.com/
            InsteadOf = git@github.com:
           
    • githubに移動し、マイページのpersonal settingsのSSH and GPG keysに入ります。
      New SSH keyをクリックし、さきほどコピーした公開鍵をペーストします。

    追跡済みのファイルを除外する方法

     # ファイルは消さずに、追跡だけ除外
     $ git rm --cached FILE_NAME
    

    Gitの一部のディレクトリだけ取得する方法

    次に marge request (githubで)

    他の人の開発分を取り込む
    git pull origin master

    直前コミットの取り消し。
    git reset HEAD

    CentOS7でプロンプトにブランチ名を表示したい
  • ヤフオク自動取り消しシステム

    はじめにログイン状態を確認から、機動する別ウィンド […]

    はじめにログイン状態を確認から、機動する別ウィンドウでヤフオクにログインしてください。

    このウィンドウは2分くらいで自動で閉じられます。

      商品の登録方法

    1. 普段使っているブラウザを起動します(何でもOKです)
    2. 自身のアカウントから出品中の一覧を表示します
    3. 自動取り消しをしたい商品を右クリックしてリンクアドレスをコピーします

      4. URLのフィールドに貼り付けて 目標価格を入力します (その他の項目は自動で入ります)

      5.[登録する] ボタンを押します

      6. 何件も登録できますが,商品の終了時間はなるべく1分以上開けてください

      7.取り消し時間は,残り20秒が最小値です.

      登録された商品情報は5分間隔で更新されます.

      残り時間が1分を切った商品は9秒ごとに新しい価格に更新されます

    セットアップ

    フリーアプリのXAMPPをインストールしてください。
    バージョンは最新のものを選んでください。

    「はい」を選んでください

    「OK」を選んでください

    画像の通りに、必要ないアプリケーションのチェックを外してください。

    このまま「Next」をクリック

    チェックは外してから「Finish」をクリック

    フリーアプリのnode.jsをインストールしてください。
    バージョンは最新のものを選んでください。
    すべて次へをクリックして完了してください。

    C:¥xamppフォルダからhtdocsフォルダを削除してください。

    ダウンロードしたhtdocs.zipをWクリックして中身をすべてC:¥xamppフォルダへコピーしてください

    xam-permition.batを右クリックして管理者として実行してください。
    次にxamp-controll.exeをWクリックしてください。
    このアイコンをスタートメニューにピン留めをおすすめします。

    一番右上のConfigをクリック

    Apacheにチェックを入れてください。
    次回からStartを押さなくても起動するようになります。

    今回は一番上Apachのstartをクリック

    外部のPCからのアクセスを許可するか聞いてきますが、キャンセルしていいです。

    Startしたら Adminボタンを押してください。
    Chromeブラウザでアプリケーションが起動します。

  • mb_convert_kana 濁点の結合 かな、カタカナ混在

     $str = ‘ぐボピ.png’; $s […]

    
    
    
    $str = 'ぐボピ.png';
    $strs = mb_str_split($str);
    $strs = array_reverse($strs);
    $nextkey = -1;
    
    foreach ($strs as $key => $str) { //かな true
      if(preg_match("/^[ぁ-ん]+$/u",$str)){
        $kana = true;
      }else{
        $kana = false;
      } 
    
      if(preg_match("/゙|゚/",$str)){ //濁点なら保存
        $dakten = $str;
        $nextkey = ++$key;
        continue;
      }
      
      if($key == $nextkey){ //濁点なら次の文字の後ろに連結
        $str .= $dakten; 
      }
      
      $str = dakten_replace($str); //置換 濁点も一文字になってる
      
          
      if( $kana ) {  // 元が "かな" ならかなに戻す
        $str = mb_convert_kana($str, 'c', 'UTF-8');
      }
    
         $newstrs[] = $str ; 
    }
    
    $strs = array_reverse($newstrs);
    $str = implode('',$strs);
      var_dump($str);
    
      function dakten_replace ($str){
        $str = str_replace('゙','゛' ,$str); //全角濁点を半角に
        $str = str_replace('゚','゚' ,$str);
        $str = mb_convert_kana($str, 'hkV', 'UTF-8');
        $str = mb_convert_kana($str, 'HV', 'UTF-8');
        $str = mb_convert_kana($str, 'C', 'UTF-8');
        return $str;
      }
    
    
    

    string(13) “ぐボピ.png”
    $str = ‘ぐボピ.png’;
    比較しても見た目ではわからない。

    濁点はひらがなでもカタカナでもないが、かなとカタカナは等しい

  • samba.conf 設定ファイルをincludeしてユーザーを追加する

    $ cd ~ 新規ファイルの作成 $ vi aki […]

    
    
    $ cd ~
    
    新規ファイルの作成
    $ vi akita_hanako_smb.conf
    
    i で編集モードにして 以下をペースト
    
    	#この下の行から
    	[share]
    	  comment = Share Folder for All Users
    	  path = /home/akita_hanako/
    	  browseable = no
    	  read only = no
    	#この上の行まで
    
    ESCキー → :wq 
    
    
    共通ファイルの編集
    $ sudo vi /etc/samba/smb.conf
    	
    # この一行を最終行へ貼り付ける	
    	include = /home/akita_hanako/akita_hanako_smb.conf
    
    ESCキー → :wq 
    
    これでsambaユーザーを作る
    $ sudo pdbedit -a akita_hanako
    パスワードを打つ x2
    
    
    sanbaの再起動実行
    $ sudo systemctl restart smb.service
    
    
    
  • LINE Messaging APIで phpから Pushメッセージを送信する

    1. LINE for Bussinessを用意す […]

    1. LINE for Bussinessを用意する

    LINE Messaging APIを使用するには Line Developers に登録する必要があります。
    LINE Bussiness ID を作る

    次に LINE Bussiness アカウントとLINEアカウントを連携します。
    連携するURL

    2. LINE Messaging APIを設定する

    channelをつくる

    Webhookを設定

    Webhook settings の 「Edit」 をクリックし、公開しているWebhookURLを設定します。

    Channel access tokenを有効化

    Messaging APIの下部にある「Channel access token」の「Channel access token (long-lived) 」から「Issue」をクリック。

    つくったchannelをお友達登録する

    Messaging API 管理画面から作ったチャンネルのQRコードを表示してお友達登録する

    
    
        // LINE Messaging API プッシュメッセージを送る
        $LINE_PUSH_URL = "https://api.line.me/v2/bot/message/push";
    
    
        $LINE_CHANNEL_ACCESS_TOKEN = 'ZXCVFDSA*******************'; 
    
        // Your user ID
        // Messaging API 管理画面で確認 これくらいながいやつ
        $LINE_USER_ID = "U3**********************";
    
        // 送信するメッセージ
        $message_1 = "こんにちは API";
        $message_2 = "PHPからPUSH送信\r\n改行して2行目";
    
        // リクエストヘッダ
        $header = [
            'Authorization: Bearer ' . $LINE_CHANNEL_ACCESS_TOKEN,
            'Content-Type: application/json'
        ];
    
        // 送信するメッセージの下準備
        $post_values = array(
            [
            "type" => "text",
            "text" => $message_1
            ],
            [
            "type" => "text",
            "text" => $message_2
            ]
        );
    
        // 送信するデータ
        $post_data = [
            "to" => $LINE_USER_ID,
            "messages" => $post_values
            ];
    
        // デバグ確認用のログ:送信データ
        $file = '/tmp/post_data.txt';
        file_put_contents($file, json_encode($post_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), FILE_APPEND);
        file_put_contents($file, PHP_EOL.PHP_EOL, FILE_APPEND);
    
        // cURLを使った送信処理の時は true
        // file_get_contentsを使った送信処理の時は false
        $USE_CURL = true;
    
        if ($USE_CURL) {
            // cURLを使った送信処理
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $LINE_PUSH_URL);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
            curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post_data));
            $result = curl_exec($curl);
            curl_close($curl);
        }
        else
        {
            // file_get_contentsを使った送信処理
            $context = stream_context_create(array(
                'http' => array(
                    'method' => 'POST',
                    'header' => implode("\r\n", $header),
                    'content'=>  json_encode($post_data),
                    'ignore_errors' => true
                )
            ));
    
            $result = file_get_contents(
                $LINE_PUSH_URL,
                false,
                $context
                );
        }
    
        // デバグ確認用のログ:受信レスポンス
        $file = '/tmp/result.txt';
        file_put_contents($file, $result, FILE_APPEND);
        file_put_contents($file, PHP_EOL.PHP_EOL, FILE_APPEND);
    
    
  • vi エディタ で一括置換 スラッシュを含む場合

    :%s;192.168.17.106/wordpr […]

    
    :%s;192.168.17.106/wordpress;abc.domain.jp;g
    

    192.168.17.106/wordpress → abc.domain.jp に変わる

  • jquery 要素を取得 いろいろ

    オブジェクト要素数のカウント [code] let […]

    オブジェクト要素数のカウント

    [code]
      let a = {de:234}
      console.log( Object.keys(a).length)
    
    // a.length はundefined になる
    [/code]
    

    変数が未定義かどうかの判定

    [code]
                                                     // あり   なし
        console.log(typeof session !== "undefined" );// true  false
        console.log(typeof session === "undefined" );// false true
     
    [/code]

    指定した要素本体の取得

    [code]
       $('#youso').prop('outerHTML');
     [/code]

    自分の親要素の順位

     
     var this_index = jQuery('.oya p').index(jQuery(this).parent());
     oyaクラスの中のpが何番目かが取得できる this は同じ親を持つボタンとか
     

    チェックされているラジオボタン、checkBoxの値を取得

     
    jQuery('input[name="shipper"]:checked').val();
     

    ラジオボタンの見た目をONにする、属性を選択状態にする←これらは別物

     
     jQuery('[type="radio"]').eq(0).prop('checked',true).attr('checked',true);
     

    選択されたラジオボタンがあればtrue

     
     var ret = $('[name="fls"]').is(':checked'); 
     

    セレクトメニューに値をセット

     
    jQuery(this).prop("selectedIndex", 0); //最初のoption指定
     

    セレクトメニューで選択されたoption要素のdata属性を取得

     
    jQuery('select').children('option:selected').data('id');
    

    datalistで選択されたoption要素のdata属性を取得

     
      $('[name="company"]').change(function(){
          var issuer_id = $("#datalistOptions22 option[value='" + $('#company').val() + "']").data('issuer_id');
          console.log(issuer_id);
        });
    
  • プラグインをデータベースから無効化

    これで探す select * from wp_op […]

    これで探す

    
    select * from wp_options where option_name = 'active_plugins'
     
     
    // シリアライズされた文字列↓
    $a='a:48:{i:0;s:25:"add-to-any/・・・・・・";}';
    
    $b= unserialize($a);
    
    array_splice($b,25,1);  //インデックスだと24を無効化
    array_splice($b,13,1);  //〃 12
    print_r($b);
    $b = serialize($b);
    var_dump($b); // 再度シリアライズして コピー
     
     
    update wp_options
                -- ここに貼る ↓
    set  option_value = 'i:0;s:23:"add-to-any/・・・・・・";}'
    where option_name = 'active_plugins'
     
  • WordPressのメディアライブラリで画像が表示されない gridのみ

    functions.phpもしくはプラグインファイ […]

    functions.phpもしくはプラグインファイルの先頭行に<?php 以外の何かがある場合

     
    ●<?php
    ↑これを消せばなおる
     
  • JavaScriptでPHPのnumber_format

    組み込みでもともとあるので自作しなくてもよい nu […]

    組み込みでもともとあるので自作しなくてもよい
    number_format javascript

     
    var price = Number("120000000");
    
    console.log( price.toLocaleString());
     

    → 120,000,000