Archives 2021

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($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 ; // スラッグ。タグ
			 }

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




$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 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を用意する

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);