ワードプレスのテーブルwp_postsデータを取ってきてLaravelで表示.

2025.07.15

Logging

おはようございます.ワードプレスのテーブル(wp_posts)データを取ってきて別サイト(Laravel)にて表示してます.別サイトには広告が付かない感じです.因みにデータは自サイトのブログデータを使用していますが随時去年あたりのデータから取得するようにSQLに記述しています.

尚、どうやって取得しているかをお話するとSQLのコネクション変更する設定をコンフィグフォルダのデータベースファイルに記述してモデルにもその事を明記しています.

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;


class Blog extends Model
{
    protected $connection = 'second_db';
    protected $table = 'wp_posts';
}

そしてそれらを呼び出しているだけです、とても簡単なコードで動いています.そんな感じなのでブレイドのコードをシェアします、流石にコントローラーは見せられないけどYoutubeのリンクやXのリンクは出力する前に置き換えていることをヒントとしてお伝えしときますね.

<!doctype html>
<html lang="ja" class="transition-colors duration-300">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
    <meta name="robots" content="noindex,nofollow" />
    <title>blog - [taoka toshiaki]</title>
    <link rel="icon" href="https://taoka-toshiaki.com/images/g4DV7mRe_400x400.jpg?t=1752317617"
        sizes="16x16 24x24 32x32 48x48 64x64">
    <!-- Prism CSS -->
    <link id="prism-theme" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css" />
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/plugins/line-numbers/prism-line-numbers.css" />
    <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css"
        rel="stylesheet" />
    <style>
        body {
            background-color: #f9fafb;
            color: #1f2937;
            transition: background-color 0.3s, color 0.3s;
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        .dark body {
            background-color: #242425;
            color: #f9fafb;
        }

        article {
            background-color: #fff;
            transition: background-color 0.3s;
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        .dark article {
            background-color: #3d3d47;
        }

        time {
            color: #6b7280;
        }

        .dark time {
            color: #9ca3af;
        }

        .prose {
            color: inherit;
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        pre[class*="language-"] {
            overflow-x: auto;
            padding: 1em;
            border-radius: 0.5rem;
        }

        code[class*="language-"] {
            white-space: pre;
        }

        a,
        a:hover {
            border-bottom: solid 2px #fbf81c;
        }
    </style>
    @include('header_script')
</head>

<body class="transition-colors duration-300">

    <div class="max-w-3xl mx-auto p-6">
        <h1 class="text-2xl font-bold mb-6"><a href="/" class="text-current">🏠️Top Page</a></h1>
        <p class="mb-3 font-bold"><a href="/blog">🖊️</a>おもしろき こともなき世をおもしろく 住みなすものは 心なりけり.</p>
        @if (request()->input('page') == 108)
            <a href="/blog" class="text-[54px]">📖</a>
            <h1 class="text-2xl font-bold text-[108px] mb-6">108🧘️</h1>
        @endif

        <button id="darkModeToggle"
            class="mb-6 px-4 py-2 bg-gray-200 dark:bg-gray-700 text-gray-800 dark:text-gray-200 rounded">
            ダークモード切り替え
        </button>

        <div class="space-y-10">
            @foreach ($items as $item)
                <article class="shadow-md rounded-lg p-6 transition-colors duration-300">
                    <h2 class="text-xl font-semibold mb-2 break-words">⏩️{{ $item->post_title }}</h2>
                    <time class="text-sm block mb-4">{{ $item->post_date }}</time>
                    <div class="prose prose-sm max-w-none break-words">
                        {!! $item->post_content !!}
                    </div>
                </article>
            @endforeach
        </div>

        <div class="mt-10">
            {{ $items->links() }}
        </div>
    </div>
    <!-- トップに戻るボタン -->
    <button id="scrollTopBtn"
        class="fixed bottom-6 right-6 hidden bg-gray-600 text-white px-4 py-2 rounded-full shadow-lg hover:bg-gray-700 transition-opacity">
        ▲ 上へ戻る
    </button>
    <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
    <script src="https://cdn.jsdelivr.net/clipboard.js/1.5.13/clipboard.min.js"></script>
    <!-- Prism.jsのコアファイル -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js"></script>
    <!-- Prism.jsのオートローダ -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
    <!-- Toolbarプラグインのスクリプト -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"></script>
    <!-- その他のプラグインのスクリプト -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/highlight-keywords/prism-highlight-keywords.min.js"></script>

    <script>
        const toggleBtn = document.getElementById('darkModeToggle');
        const prismTheme = document.getElementById('prism-theme');
        const darkThemeHref = 'https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism-tomorrow.css';
        const lightThemeHref = 'https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css';

        if (localStorage.getItem('darkMode') === 'true') {
            document.documentElement.classList.add('dark');
            prismTheme.href = darkThemeHref;
        }

        toggleBtn.addEventListener('click', () => {
            const isDark = document.documentElement.classList.toggle('dark');
            prismTheme.href = isDark ? darkThemeHref : lightThemeHref;
            localStorage.setItem('darkMode', isDark);
        });

        document.addEventListener("DOMContentLoaded", () => {
            document.querySelectorAll('pre[class*="lang-"]').forEach(pre => {
                const match = pre.className.match(/lang-(\w+)/);
                if (match) {
                    const lang = match[1];
                    pre.className = `language-${lang} line-numbers`;
                    const code = pre.querySelector('code');
                    if (code) code.className = `language-${lang}`;
                }
            });
            // トップへ戻るボタンの処理
            const scrollTopBtn = document.getElementById("scrollTopBtn");
            window.addEventListener("scroll", () => {
                scrollTopBtn.classList.toggle("hidden", window.scrollY < 200);
            });

            scrollTopBtn.addEventListener("click", () => {
                window.scrollTo({
                    top: 0,
                    behavior: "smooth"
                });
            });
        });

        //全選択ボタンを作成&クラス名付与
        Prism.plugins.toolbar.registerButton('select-code', function(env) {
            var newButton = document.createElement('button');
            newButton.className = 'code-select-btn';
            newButton.innerHTML = 'コードを選択';

            newButton.addEventListener('click', function() {
                if (document.body.createTextRange) { // ms
                    var range = document.body.createTextRange();
                    range.moveToElementText(env.element);
                    range.select();
                } else if (window.getSelection) { // moz, opera, webkit
                    var selection = window.getSelection();
                    var range = document.createRange();
                    range.selectNodeContents(env.element);
                    selection.removeAllRanges();
                    selection.addRange(range);
                }
            });
            return newButton;
        });

        //使用言語表示ボタンを作成&クラス名付与
        Prism.plugins.toolbar.registerButton('show-lang-btn', function(env) {
            var newButton2 = document.createElement('button');
            newButton2.className = 'show-lang-btn';
            newButton2.innerHTML = env.language;
            return newButton2;
        });

        $(function() {
            //各ボタン要素の親要素にクラス名付与
            $('.toolbar-item .code-select-btn').parents('.toolbar-item').addClass('code-select');
        });
    </script>

</body>

</html>

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, ;;⏩, あたり, いん, オート, お伝え, お話, クラス, コード, コア, こと, コネクション, コントローラー, コンフィグフォルダ, サイト, シェア, スクリプト, その他, それら, ダーク, データ, データベース, テーブル, ドップ, ヒント, ファイル, フラグ, ブレイド, プレス, ブログデータ, ボタン, モード, モデル, もの, よう, リンク, ローダ, ワード, 付与, 作成, 使用, 処理, 出力, 切り替え, 去年, 取得, 変更, 広告, 感じ, 明日, 明記, 流石, 簡単, 表示, 要素, 言語, 記述, 設定, 選択, 随時,

チャットワークのAPIを使ってみました.プロンプトでほぼ書いています.

2025.07.13

Logging

おはようございます.チャットワークのAPIを使ってみました.プロンプトでほぼ書いたコードになります、チャットGPTの無料版にリファレンスのURLリンクとPHPのクラス化、リターンに$thisで返却出来る所は$thisを使用してスマートにコードを書いてと指示を出しました.

出来上がったコードが下記になります.ソースコードは自分の方でモンキーテスト的に動かしてみましたが、ちゃんと動作するようです.

<?php
class ChatworkClient
{
    private string $apiToken;
    private string $baseUrl = 'https://api.chatwork.com/v2';
    private int $retryCount = 3;
    private int $retryDelay = 1000000; // microseconds

    public function __construct(string $apiToken)
    {
        $this->apiToken = $apiToken;
    }

    public function setRetry(int $count, int $delayMicroseconds): self
    {
        $this->retryCount = $count;
        $this->retryDelay = $delayMicroseconds;
        return $this;
    }

    private function request(string $method, string $path, array $params = []): array
    {
        $attempts = 0;

        while ($attempts < $this->retryCount) {
            $attempts++;

            $ch = curl_init();
            $url = $this->baseUrl . $path;

            if ($method === 'GET' && $params) {
                $url .= '?' . http_build_query($params);
            }

            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            $headers = ['X-ChatWorkToken: ' . $this->apiToken];

            if (in_array($method, ['POST', 'PUT', 'DELETE'])) {
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
                curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
                $headers[] = 'Content-Type: application/x-www-form-urlencoded';
            }

            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

            $body = curl_exec($ch);
            $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            $error = curl_error($ch);
            curl_close($ch);

            if ($error) {
                if ($attempts < $this->retryCount) {
                    usleep($this->retryDelay);
                    continue;
                }
                throw new RuntimeException("cURL error after {$attempts} attempts: {$error}");
            }

            if ($status >= 200 && $status < 300) {
                return [
                    'status' => $status,
                    'body' => $body ? json_decode($body, true) : null,
                ];
            }

            if ($attempts < $this->retryCount && $status >= 500) {
                usleep($this->retryDelay);
                continue;
            }

            return [
                'status' => $status,
                'body' => $body ? json_decode($body, true) : null,
            ];
        }

        throw new RuntimeException("Request failed after {$this->retryCount} attempts");
    }

    public function setToken(string $token): self
    {
        $this->apiToken = $token;
        return $this;
    }

    public function me(): array
    {
        return $this->request('GET', '/me');
    }
    public function getMyStatus(): array
    {
        return $this->request('GET', '/my/status');
    }
    public function getMyTasks(array $filters = []): array
    {
        return $this->request('GET', '/my/tasks', $filters);
    }
    public function getContacts(): array
    {
        return $this->request('GET', '/contacts');
    }
    public function getRooms(): array
    {
        return $this->request('GET', '/rooms');
    }
    public function createRoom(array $params): array
    {
        return $this->request('POST', '/rooms', $params);
    }
    public function getRoom(int $roomId): array
    {
        return $this->request('GET', "/rooms/{$roomId}");
    }
    public function updateRoom(int $roomId, array $params): array
    {
        return $this->request('PUT', "/rooms/{$roomId}", $params);
    }
    public function deleteRoom(int $roomId, string $action = 'leave'): array
    {
        return $this->request('DELETE', "/rooms/{$roomId}", ['action_type' => $action]);
    }

    public function getMembers(int $roomId): array
    {
        return $this->request('GET', "/rooms/{$roomId}/members");
    }
    public function updateMembers(int $roomId, array $params): array
    {
        return $this->request('PUT', "/rooms/{$roomId}/members", $params);
    }

    public function getMessages(int $roomId, bool $force = false): array
    {
        return $this->request('GET', "/rooms/{$roomId}/messages", ['force' => $force ? 1 : 0]);
    }

    public function postMessage(int $roomId, string $body, bool $selfUnread = false): self
    {
        $this->request('POST', "/rooms/{$roomId}/messages", ['body' => $body, 'self_unread' => $selfUnread ? 1 : 0]);
        return $this;
    }

    public function markRead(int $roomId): self
    {
        $this->request('PUT', "/rooms/{$roomId}/messages/read");
        return $this;
    }

    public function markUnread(int $roomId): self
    {
        $this->request('PUT', "/rooms/{$roomId}/messages/unread");
        return $this;
    }

    public function getMessage(int $roomId, int $messageId): array
    {
        return $this->request('GET', "/rooms/{$roomId}/messages/{$messageId}");
    }

    public function getRoomTasks(int $roomId, array $filters = []): array
    {
        return $this->request('GET', "/rooms/{$roomId}/tasks", $filters);
    }

    public function createTask(int $roomId, array $params): array
    {
        return $this->request('POST', "/rooms/{$roomId}/tasks", $params);
    }

    public function uploadFile(int $roomId, string $filePath, string $message = ''): array
    {
        if (!file_exists($filePath)) {
            throw new InvalidArgumentException("File not found: {$filePath}");
        }

        $ch = curl_init();
        $url = $this->baseUrl . "/rooms/{$roomId}/files";
        $cfile = curl_file_create($filePath);

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ChatWorkToken: ' . $this->apiToken]);
        curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $cfile, 'message' => $message]);

        $body = curl_exec($ch);
        $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        if (curl_errno($ch)) {
            throw new RuntimeException(curl_error($ch));
        }

        curl_close($ch);
        return ['status' => $status, 'body' => json_decode($body, true)];
    }
}

人が今回のコードを書いた場合、早い人でも10分ぐらいはコードを書かないといけないと思います、どんなに早くてもそれぐらいの時間は必要だと思いますが、生成AIはこれを数十秒で書ける訳ですから、確実に時間短縮になります.

なので人工知能が使える現場は間違いなく最初のコード出力は人工知能に任せた方が良いです.特に新規案件の土台は生成AIに任せると開発コストは削減出来ます.

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, クラス, コード, コスト, これ, スマート, ソース, それ, チャット, テスト, プロンプト, モンキー, よう, リターン, リファレンス, リンク, ワーク, 下記, 人工, 今回, 使用, 出力, 削減, 動作, 土台, 場合, 必要, 指示, 新規, 明日, 時間, 最初, 案件, 無料, 現場, 生成, 知能, 短縮, 確実, 自分, 返却, 開発, 間違い,

Python初学者は無料のあのドキュメントを読めば良いと思った話.

2024.12.23

Logging

おはようございます.Python初学者は無料のあのドキュメントを読めば良いと思った話を書いていきます.Python言語は飛ぶ鳥を落とす勢いです、とても人気の言語でもありますが自分はクラスやメソッドが{}でしまっていないので読みづらさを感じます.

# コレクション作成
users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}
# 方針:  コピーを反復
for user, status in users.copy().items():
    if status == 'inactive':
        print(user)
        del users[user]

# 方針:  新コレクション作成
active_users = {}
for user, status in users.items():
    if status == 'active':
        active_users[user] = status
print(active_users[user]) 

さて、この上記のコードは何処のコードかといえばPython公式のドキュメントです.これを読むだけで初学者さんは勉強になると思います.それもこれ日本語で書いてくれています.

これを読むだけで高い参考書籍を買う必要はない気がします.それでも分からない方は参考書籍を買ってみてください.

Pythonの話ではないのですが、最近React公式のドキュメントが読みやすくなっているって界隈でちょっと騒ぎになっていました.

これも生成AIが恩恵なのかもしれません.

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

クラス, コード, コピー, コレクション作成, ドキュメント, メソッド, 何処, 初学者, 初学者さん, 勉強, 勢い, 参考書籍, 反復, 恩恵, 方針, 景太郎, 生成, 界隈, 言語, ,

記事音声読み上げ機能追加しました.Chromeブラウザで読み上げ可能

2024.08.01

Logging

おはようございます.記事音声読み上げ機能追加しました.Chromeブラウザで読み上げ可能です、その他のブラウザでも比較的に簡単に導入できます.たまに読み上げが変なときがあるけれど、大体の読み上げは正確に読み上げが出来ていると思います.

音声読み上げはブラウザに標準搭載されているAPIになるのかな、それを呼び出して使っているだけです.誰でも原理を知っていれば使用できます、駆け出しのプログラマーでも作れるぐらい簡単です.

クラスを呼び出してそこに読み上げてほしいテキストデータを渡してあげればよいだけなんですから.具体的にはSpeechSynthesisUtteranceというものを呼び出すだけです.使用方法はQiitaなどに記載しているのを参考にしてみてください.

自分でも音声読み上げを使ってみたのだけど結構良いなという印象です.ながら作業しながら記事の読み返し行うことも可能です.ただ、音声が合成音声なのが若干聞き取りにくいかもしれないですね、そこはこれからAIなどが補っていく事になりそうだなって思います.

明日へ続く.

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

AI, API, chromeブラウザ, qiita, SpeechSynthesisUtterance, クラス, その他, ブラウザ, プログラマー, ほしいテキストデータ, 使用方法, 印象, 原理, 参考, 合成音声, 標準, 自分, 若干聞き取り, 記事音声, 音声,

Photo by asim alnamat on Pexels.com

Gさんのスマートグラスはスマホの次の覇者になるのかなぁ🤔

2022.05.20

Logging

おはようございます。これが投稿された頃には梅雨になっているかもしれません。

Gさんのスマートグラスはスマホの次の覇者になるのかなぁ🤔、下記の動画を見てください。

これは凄いなって思います。それぞれ中国語と英語を喋っているのにコミュニケーションが取れている。他にも出来ることが増えていくと思います、特に自分が期待しているのは、誘導です。ここで言う誘導とは仕事の効率的にする誘導や初めての街を歩く時に目的地までの誘導などに期待しています。

今でもGさんはグーグルマップでライブ機能(スマホカメラ使用)すれば出来るのですが使用している人を見たことがありません。理由は道に迷っているという事がわかるからだと思いますが、スマートグラスを使用して同じ事ができればバレずにグーグルマップが誘導してくれると思います。

最終的にはスマートグラスだけで完結することが出来るようになると思いますが、最初はBluetoothでスマホからデーターを転送し表示させる機能になると自分は思っていますが、Gさんはいきなりスマートグラスで全てを完結したものを提供してくれるかもしれません。

いやースマートグラスにはかなり夢がありますね!!

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

com, ExJ-sISIJrY, https, watch, www, youtube, カメラ, グーグル, クラス, ここ, こと, コミュニケーション, これ, スマート, スマホ, それぞれ, バレ, マップ, ライブ, 下記, 中国語, , , , 仕事, , 使用, 初めて, 動画, 投稿, , 期待, 梅雨, 機能, , 理由, 目的, 自分, 英語, , 覇者, 誘導, , ,

tailwind-cssで画面中央に表示するクラスはこれ、中央表示でググっても。

2022.02.08

Logging

この頃、Bootstrapからtailwind-cssに変えようと奮闘中で勉強中です。そんな中でググっても中々ヒットしなかった事を紹介します。

tailwind-cssで画面中央に表示する方法を中央表示でググっても画面中央表示がヒットしなかったのは、少しやっかいだなって思いました。何でも検索出来るGさんですが、何度か自分はNot Foundページを見たことがあります。つい最近のNot Foundページは、こんな感じ釣り堀?で釣りをしている宇宙人さんみたいなが表示されます、そしてちょっとした操作が出来ます😌。

引用:Googleページ

脱線した話をもとに戻して…tailwind-cssで画面中央に表示したい場合は、このクラスを付与すると良いですよ😏。

<div class="h-screen w-screen flex justify-center items-center">
    <p>center</p>
</div>

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

Bootstrap, center&lt, div class, div&gt, gt, Gさん, h-screen w, justify-center items-center&quot, lt, Not Foundページ, p&gt, quot, screen flex, tailwind-css, クラス, もと, 奮闘中, 感じ釣り堀, 操作, 画面中央,

PHPのこれは知っているでしょ。知らない人でもエンジニアしている人はいるけどね。#駆け出し

2021.10.14

Logging

今日から書く時間、正確には記事のUPする時間を変更しました、変更した理由はソーシャルメディアからの流入を増やそうという事から時間帯を変更しました。PS.この頃、ダイエットの一環で自転車に乗って小一時間運動しています。

さて、PHP言語をこの頃、触っていなかったので、久々にサンプルコードを書きました。前々の会社ではクラスの概念を知らない人がいてその人にオブジェクト指向を丁寧に教えてたのですが、何だか覚えたら何か自分で覚えたみたいに言っていて、やるせない気持ちになった事を覚えています。

今回書いたサンプルコードは?と?は同じコード動きをするものだという事は理解できると思います、プログラムって、最終的に正確な動作していれば問題ないのです。最初からシンプルなコードを書こうとはせず、今の自分のベストコードを書けば良いです。大体、過去のコードを見るともっとシンプルに書けるなと思います、それは自分の技術が成長している証です。そういう事ですので日々努力していれば道がひらけます。

自分みたいにダラダラと生活していると中々、道がひらけないので注意してくださいな。

https://zip358.com/tool/demo45/

以上、現場からでした。

<?php
//?
function foo1 (){
    return new class {
        public static function hoge(){
            print "foo1->class->hoge".PHP_EOL;
        }
    };
}
foo1()->hoge();

//?
function foo2(){
    //return array("hoge"=>"foo2->hoge");
    return ["hoge"=>"foo2->hoge"];
}

print foo2()["hoge"].PHP_EOL;

//?
function foo3(){
    $obj = new class{
        public static function hoge(){
            print "foo3->class->hoge".PHP_EOL;
        }
    };
    return $obj;
}

foo3()->hoge();

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

php, PS, UP, エンジニア, オブジェクト, クラス, コード, これ, サンプル, シンプル, ソーシャル, ダイエット, プログラム, ベスト, メディア, もの, , 一環, 丁寧, 久々, , , , 今回, 今日, 会社, 前々, 動作, 変更, 大体, , 指向, 時間, 最初, 概念, 正確, 気持ち, 流入, 理由, 理解, 自分, 自転車, 言語, 記事, 運動, 過去, , 駆け出し,

全固体電池がやっと量産へこれにより スマートウォッチ革命が起きるので!!

2021.08.30

Logging

全固体電池がやっと量産へこれによりスマートウォッチ革命が起きるので!!いま、スマートウォッチやスマホをノートパソコンなどをなけなしの金を使って買う人は少し待った方が良い、あと数年でスマホなどにも全固体電池が使われるようになると自分は思っています。全固体電池の良い所は一般的な酸化物全固体電池に比べ、100倍程度の容量を持つのが特徴です。

今のスマートウォッチやスマートグラスは電池の持ちがかなり悪いのでそれを嫌悪して買いを控えているユーザー層も結構多いと思いますが、全固体電池になり電池の容量が100倍上がればスマートウォッチやスマートグラスなどが一気に広がる可能性があると思っていて、おそらく右肩上がりに需要は上がっていくと、そうなれば全固体電池の価格も下がっていくだろうし生産性も上がっていくと。

株などをしている人には村田製作所や関連企業、そしてライバル企業の動向は今から気になるところかなと思います。そして何よりスマートウォッチやグラスにより世の中が結構変わりそうです。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

100, いま, かなり, クラス, これ, スマート, スマートウォッチ, スマホ, それ, ところ, なけなし, ノートパソコン, ユーザー, ライバル, , , 企業, 価格, 動向, 可能性, 右肩, 固体, 嫌悪, 容量, 少し, , 待った, , , 村田製作所, , , 特徴, 生産性, 自分, 買い, 酸化物, 量産, , 関連, 電池, 需要, 革命,

朝方もくもくと。

2020.10.14

Logging

朝方もくもくと歩いていますが、スマホで映画見たりながら作業しています。田舎で朝方歩いても誰かに合うというのは、片手で数えるぐらいですから効率的にながら作業を朝しています。本当は駄目らしいので良い子は真似しないでね。

朝歩きながらすることはスマホで記事のチェックやプライムビデオみたり、NewsPicksの番組を視聴したりしています。歩く時間が1時間ちょっとあるのでその時間がもったいないなと思いそうしています。スマートグラスが登場すれば背筋を伸ばした状態で同じようなことが出来るようになるのかななどと思っています。

はやくスマートグラスが登場すれば良いのにと本当に思っています。スマートグラスの問題は電池のもちとあと、スマートグラスでどこまで機能を載せれるのかなどの問題が在ると思うのですが、当分のスマートグラスはスマホからBluetoothでやり取りでカバーすれば良いと思うので、逆に言えばスマホのアプリがどこまで柔軟にスマートグラスと連携できるかだと勝手に思っています。

因みにスマートグラス出る出ると前々から言っているのですが、本当にそろそろ登場しそうです。たぶん来年あたりだと思います。コロナ禍が収まった頃に出そうですね。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, bluetooth, newspicks, アプリ, いま, カバー, クラス, こと, スマート, スマホ, チェック, どこ, ビデオ, プライム, もち, やり取り, 作業, 勝手, 問題, , 当分, 映画, 時間, , 朝方, 本当, 機能, 片手, 状態, 田舎, 番組, 登場, 背筋, 視聴, 記事, 誰か, , 連携, 電池, 駄目,

英語を話したい人、必見!YOUTUBER、ATSUさん。

2020.07.07

Logging

英語を話したい人、必見!YOUTUBER(ユーチューバー)、ATSUさんを紹介します。動画見ていただければ分かる通り、毎日、反復して声に出して覚えることにより嫌でも覚える。そうだよな、世界で結構難しい日本語を使いこなせているのに何故か英語に拒否感を持つ人の多いこと、多いこと。

特にいまの30代から上の人は話す英語というより覚える英語ということで受験等を乗り切ってきたと思います。でも殆どのひとは覚えていないですよね、自分なんて英語は不得意分野から未だに抜け出せないでいます。ですがIT業界では英語は大事です、数学も大事ですが英語も結構大事な分野です。それは何故か、変数名やクラス名の名前付けするときに大事になりますし、人のコードを読むときにも大事になります。なので数学がわからずとも英語は分からないはあまりよろしくないです。

自分でゴニョゴニョとコードを書くのでは困りませんが、チームでなにか開発を行うときは英語が身についていないと困ります。なので英語がわからない人は日々、英語を勉強することからはじめた方が良いです。因みに自分も英語を勉強していますが、なかなか身につかないなと思っていた時にATSUさんの動画見てそうだよなと思いました。

そして違う言語を覚えるには効率の良い方法で何回も何回も頭に叩き入れないと駄目だなと感じます。好きこそものの上手なれですが、好きじゃない場合はそれを毎日毎日続ける努力が必要かなと思いました。

なにかスキルをプラス1する場合は努力が必要かなと、最後にYOUTUBEチャンネル登録はこちらです。
https://www.youtube.com/user/fzsdjbncf2000/about

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

-XBVCE, 0, 30, ATSU, com, https, IT, UlCz, watch, www, youtube, YOUTUBER, いま, クラス, コード, こと, それ, とき, ひと, ユーチューバー, , 不得意, 世界, , 分野, 動画, 反復, 受験, 名前, , 変数, 大事, 必見, 拒否感, 数学, 日本語, 未だ, 業界, 殆ど, 毎日, 紹介, 自分, 英語, 通り,

ブロガーは無理ゲーなのか?

2020.07.05

Logging

もうブロガーは無理ゲーなのか、個人で稼げない時代なのかと言えばそうでもない気がします。サーバ代ぐらいはビギナーブロガーでも稼げますよ。ならば5万?10万円稼げる層もいるだろうし、1万円稼げる層もいると思います。ただ毎月、数十万円稼げるそうはそんなにいないと思います。

因みに自分はビギナーブロガークラスです。これが5万?10万円ぐらい稼げれば良いなと思っています。

YOUTUBEと比較するとブロガーの稼げる難易度で言えば、いまは同じぐらいかなと思います。YOUTUBEは競合が増える一方なのでもうレッドオーシャンになっています。ブロガーといえばこちらもレッドオーシャンです。ただ自分が思うにブログ、単体では無理だけどブログPlus、その他の情報発信ツールと連携すれば未だまだ収益化は難しいことではないと思います。

まぁあまり稼げていないじぶんが言うのもは説得力がない話ですが、文体がしっかりしていて、ブログの方向性も統一しているようなサイトは確実に日々の積み重ねで結果は出てくると思います。

プロのブロガーさんから、そんな甘い話ではないぞとお叱りをされそうですが、自分はそう思います。ブログにセンスは少なからず必要かと思います。もしくは人を引きつける何がないとリピーター率は少ないかなと思います。自分はこのリピーター率を高めようと奮闘しています。中々、こればかりは難しいです。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, 10, 5, Plus, youtube, いま, オーシャン, クラス, ゲー, こちら, こと, これ, サーバ, サイト, じぶん, その他, ツール, ビギナー, ブロガー, ブログ, レッド, 一方, , 個人, 単体, 収益, , 情報, 数十万, 文体, 方向性, 時代, 毎月, 比較, , 無理, 発信, , 競合, 統一, 自分, , 説得力, 連携, 難易,

BUCKET LIST(バケットリスト)デンジャーゾーンを制す男。

2020.03.25

Logging

世界のデンジャーゾーンを旅する男、リョースケさん、YOUTUBEのタイトルはBUCKET LIST (死ぬまでにしたいこと) です。 このひとだから出来ると思います、いつも笑顔を振りまいているけれど、どこかで撃たれるのではないかとハラハラしながら見てしまう動画。YOUTUBE登録者数は中堅YOUTUBERクラスですね。収入はかなりあるとは思うもののとても危険ゾーンです。命はお金に変えられないと・・・。

この頃はアフリカを旅しているみたいですが、この行動力は凄いなと思います。見ているとやはり最後まで見てしまうのは怖いもの見たさなのかなぁと思いますが、世界のデンジャーゾーンでも生活している人はいるし全員が悪い人ではないのだなぁと感じます。ただ治安が悪いのは間違いないけれど…。

なんだか言って行動している人にアレは駄目これは駄目だとは自分は言えない。自分が同じことをしている人なら指摘は出来るだろうけど、何もしないで駄目だとは言えないですね。特に自分が体験していないことには口出し無用だと感じます。経験もせずに文句は言えない。それは机上の空論(きじょうのくうろん)であり絵に描いた餅と同じだから。

最後にチャンネル登録はこちら
https://www.youtube.com/channel/UC75KuCecKVZt7Wzu9yAU99A

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

BUCKET, LIST, youtube, YOUTUBER, アフリカ, アレ, お金, かなり, クラス, こと, これ, ゾーン, タイトル, デンジャー, どこか, パケット, ひと, もの, リスト, リョースケ, 世界, 中堅, , 全員, 動画, 危険, 収入, , 指摘, , 最後, 治安, 生活, , 登録者, 笑顔, 自分, 行動, 行動力, 見たさ, , 駄目,

スマートグラスは今年後半にはガジェット好きが買い出す。

2020.01.22

Logging

スマートグラスかなり魅力的な商品になるかもと思います。スマートグラスをかけて街に出掛けるといろいろな情報に触れることが出来るように近い将来なるだろうと思います。いまの段階でも道案内などをスマートグラスが行ってくれる製品があります。昔、グーグルから売り出されたGoogle Glassも普通のメガネに近づきあります。

いろいろな企業が凌ぎを削ってスマートグラスのシェアを獲得しようと動き出しています。アップルもおそらく今年中、遅ければ来年以降になるかもしれないけれどスマートグラスを発売すると思います。最近見た記事ではFacebookの最高責任者、 マーク・ザッカーバーグは今年の後半に今までとは別次元のスマートグラスが発表されるだろうと言っています。

ガジェット好きな自分にとっては待ち遠しい話です。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

4, 5, 51, com, Facebook, Glass, Google, IK-zU, MU, youtube, アップル, いま, いろいろ, ガジェット, かなり, グーグル, クラス, こと, ザッカーバーグ, シェア, スマート, マーク, メガネ, 今年, 企業, 別次元, 商品, 将来, 後半, 情報, , 普通, 最近, 最高, 来年, 段階, 獲得, 発売, 発表, 自分, , 製品, 記事, , 責任者, 道案内,

今年最後のブログ…

2019.12.31

Logging

今年もユーザーさんに支えられブログを続けることが出来ました。

過去のブログを他のブログに移行していたのですが、
12月にそのブログももとに戻し、更新頻度も前と同じに変更しました。
(※そのブログも来年から不定期で更新していきます)

毎年の恒例の未来予想の話を記載します、
来年(2020年)、何が起こるかといえば自分は
人工知能のサービスが日本でも大々的に
各企業(中小企業含む)が使用されるようになると思います。

また、スマートグラスというものがもしかしたら
来年浸透するかもしれないなと思っています。

これはスマホに続く便利ツールになると感じています。

あと日本でも5G(ファイブジー)のサービスが開始されますよね。
これは新しい風になると思います、通信費がいまの4G程だと
浸透するのはかなり早いと思います、また来年から
ギガ通信の制限がなくなるそうなので、
いろいろな事が変わり始める年になると思います。

※今年最後のブログ記事を見て頂きありがとうございます。
良いお年を!!

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

2020, 4, 5, いま, いろいろ, かなり, ギガ, クラス, こと, これ, サービス, シー, スマート, スマホ, ツール, ファイブ, ブログ, もと, もの, ユーザー, 不定期, 中小企業, 予想, , 人工, 今年, , 企業, , 使用, 便利, 制限, , 変更, , 恒例, 日本, 更新, 最後, 未来, 来年, 毎年, 浸透, 知能, 移行, , 自分, 記事, 記載, , 通信, 過去, 開始, 頻度, ,

スーツ交通チャンネルが面白い。

2019.11.26

Logging

早口な喋りだけどテンポと声が良いので最後まで聞ける。
だいぶ声で得しているなという印象です、賢いしこの人が伸びるのはよくわかりますね。

ユーチューバーは嫌いか好きかに別れるぐらいがちょうどよいのかも。
そしてこれを見ているとまだまだYOUTUBEは隙間産業があるじゃないかなと思ってしまうほどです。

スーツ交通チャンネルは今後も伸びていきそうな気がします。
鉄道好きや旅好きな方、また彼の声フェチな方にもオススメできる動画かなと思います。

自分は彼の物知りなところと少しズレているところが面白みがありそして人間性が出ていて好きです。

おそらく目標金額が達成すると徐々に動画の本数が減っていくかと思います、彼もユーチューバーで
一生生活するつもりは無さそうです。

ANAダイヤモンド会員になるため修行!プレミアムクラスで沖縄3往復 羽田空港?那覇空港 12/19-0

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

0, 12, 19, , ANA, youtube, おすすめ, クラス, これ, スーツ, ズレ, ダイヤモンド, ため, チャンネル, つもり, テンポ, ところ, フェチ, プレミアム, ユーチューバー, 一生, 交通, , 人間性, 今後, 会員, 修行, 動画, 印象, , 嫌い, 少し, , 往復, , , 早口, 最後, 本数, , 沖縄, 物知り, 生活, 目標, 羽田空港, 自分, 達成, 那覇空港, 金額, 鉄道, 隙間産業, 面白み,

Standard PHP Library(SPL)というライブラリーには便利な関数が入っている。

2019.04.07

Logging

The Standard?PHP?Library (SPL) は、標準的な問題を解決するためのインターフェイスやクラスを集めたものですと公式ページに書かれている通り
便利な関数です。例としてspl_autoload_registerを紹介。
ぐぐるとどんな機能なのか書かれているので割愛してます。

<?php
spl_autoload_register(function($name){
    include __DIR__ . DIRECTORY_SEPARATOR ."class" . DIRECTORY_SEPARATOR . $name . '.php';
});
$class_demo = new class_demo();

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

autoload, class, demo, DIR, DIRECTORY, function, include, Library, lt, name, new, php, register, SEPARATOR, SPL, Standard, The, インターフェイス, クラス, ため, ページ, もの, ライブラリー, , 便利, 公式, 割愛, 問題, 機能, 紹介, 解決, 通り, 関数,

ネームスペースの利点はこれだと思っている。

2019.03.02

Logging

ネームスペースの利点はこれだと思っている。
複数人で開発とかしているときに関数名やクラスなどが
かぶってしまう可能性ある、そういうのを
解決してくれるのがネームスペースということです。

<?php
namespace testdemo;
class test{
    function demo():string
    {
        return "demo1n";
    }
}
namespace testdemo2;
class test{
    function demo():string
    {
        return "demo2n";
    }
  }

 

<?php
include_once "./index-6.php";
$demo = new  testdemotest();
print $demo->demo();
$demo = new  testdemo2test();
print $demo->demo();

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

'dem, , 2, 6, class, demo, function, include, index, lt, namespace, nbsp, new, once, php, print, return, string, test, クラス, こと, これ, スペース, とき, ネーム, 利点, 可能性, 複数人, 解決, 開発, 関数,

PHP忘れてしまいそう。

2019.02.23

Logging

こういう書き方とか書かなかったら忘れてしまいそうですね。
クラスの多重継承とか職場ではそもそもしない。Functionで十分な感じで
この頃、ろくなコードを書いていません。FunctionからFunctionへなんて
コードを書いてたりしています。
 

<?php
function demo1(int $val=0):int
{
    return 3 * 3 * $val;
}
print demo1(3);
class demo2
{
    public static function test1():string
    {
        return "ABC";
    }
}
$demo2  = "demo2";
print $demo2::test1();
trait demo3
{
    public static function test2($val=""){
        return $val;
    }
}
class demo4
{
    public static function test3($val = "")
    {
        return $val;
    }
}
class demo5 extends demo4
{
    use demo3;
    public static function test4($val = "")
    {
        return $val;
    }
}
$demo5 = 'demo5';
print $demo5::test2(1);
print $demo5::test3(2);
print $demo5::test4(3);

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

0, , 2, , ABC, class, demo, function, int, lt, nbsp, php, print, public, return, static, string, test, trait, val, クラス, コード, そもそも, 多重, 感じ, 書き方, 継承, 職場, ,

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

2018.11.08

Logging

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

追記:2022/10/08 修正:詳しくはコチラ
https://qiita.com/question909/items/8f1df9b62ab4fba76243

<?php
//5分刻みに対して有効な無限クローン 処理が負荷の場合どうなるかは知りません。
date_default_timezone_set('Asia/Tokyo');
class cron{

    public function d_m($obj)
    {
            if($obj->m==="*")return true;
            if(preg_match("/,/",$obj->m))return $this->comma($obj->m,date("m"));
            if((int)$obj->m === (int)date("m"))return true;

            return false;
    }

    public function d_d($obj)
    {
            if($obj->d==="*")return true;
            if(preg_match("/,/",$obj->d))return $this->comma($obj->d,date("d"));
            if((int)$obj->d === (int)date("d"))return true;

            return false;
    }

    public function d_H($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->H)){
                $H = explode("/",$obj->H);
                if((int)$H[1]>0 && ((int)date("H") % (int)$H[1])===0)return true;
            }else{
                if($obj->H==="*")return true;
                if(preg_match("/,/",$obj->H))return $this->comma($obj->H,date("H"));
                if((int)$obj->H === (int)date("H"))return true;

            }
            return false;
    }

    public function d_i($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->i)){
                $i = explode("/",$obj->i);
                if((int)$i[1]>0 && ((int)date("i") % (int)$i[1])===0)return true;
            }else{
                if($obj->i==="*")return true;
                if(preg_match("/,/",$obj->i))return $this->comma($obj->i,date("i"));
                if((int)$obj->i === (int)date("i"))return true;

            }
            return false;
    }

    //曜日 0=日曜日 6=土曜日
    public function d_w($obj)
    {
            if((int)$obj->w[date("w")]===1)return true;
            return false;
    }

    public  function comma($c="",$t=""){
        if($c==="")return false;
        if($t==="")return false;
        $flg = false;
        foreach(explode(",",$c) as $cc){
            if((int)$cc===(int)$t)$flg = true;
        }
        return $flg;
    }


    public function d_command($obj){
        if($obj->command){
            exec($obj->command . " > /dev/null &");
        }
        return true;
    }

}
if ($argv[1]) {
   $filename = $argv[1];
    if(is_file($filename)){
        $jsn = json_decode(file_get_contents($filename));
        $cron = new cron();
        try {
            foreach($jsn as $obj){
                if($cron->d_m($obj)){
                    if($cron->d_d($obj)){
                        if($cron->d_H($obj)){
                            if($cron->d_i($obj)){
                                if($cron->d_w($obj)){
                                    $cron->d_command($obj);//波動拳{{{{
                                }
                            }
                        }
                    }
                }
            }
        } catch (\Throwable $th) {
            print $th->getMessage();
        }
    }
}

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

08, 10, 2022, 39, 5, Asia, class, cron, crontab, date, default, function, if, lt, obj, php, public, qiita, set, timezone, Tokyo, UP, , クラス, クローン, クロン, コーディング, コード, ここ, コチラ, サーバー, さくら, タブ, まえ, レンタル, 下記, 今回, 何年か, 修正, 処理, 分刻み, 制限, 場合, , 技術, 改善, , 方法, 日付, , 有効, 概念, 構築, 無限, 自体, 自分, 負荷, 追記,

友だちが少ないがそれは問題ではない。むしろ多い人のほうが?

2017.07.15

Logging


自分は友だちが少ない、これ昔からそんな感じです。
小学校なんて友達っていうのはクラスの中にいなかったように思えます。
それより近所の子と遊んでいたことのほうが多かった。
今でも友だちが少ないわけです、お酒を飲みに行ったりワイワイガヤガヤする機会も
人より少ない。半端ないぐらい少ないのかなと高知県に住んでいると
実感するわけですけど、さて自分は結構、お酒の席がどっと疲れてしまう、
気の合うひとと飲みに行ったりしても、やはり疲れてしまう。
その場を愉しめば良いのですけど、
あまりたのしいと感じないですね、どちらかと言えば
サシで飲む方が愉しい楽だと感じます。
団体で飲むのは自分には合わないなという感じです。
友達もそうで旅以外なら2人派だと思います。
そういう意味では友達でも女友達を見つけて遊んだほうが
自分には会っているのかもなと。
自分が今思うのにほんとうに友達は必要なのか?
一人でいて寂しいと感じる人は友達を見つけたほうが賢明だと思いますが
自分みたいな一人でいて寂しいと思わないタイプは
無理に見つける必要はないかなと、それより好きなことを
したり、頑張りたいことを頑張ったりする時間やぼーっと休息する時間を
持つほうが良いかなと感じます。
※少し前までは友達が必要かなと思っていたのですけど
それはいっときの感情でした。
(虚しいさや寂しいという感情になった時に思うです。)
追記:
虚しいさや寂しいというのは
ずっと続くものでもないですね、なので友達がいないからと言って
悲観することはないと思います。自分が思うに
その時間が結構無駄かなと友達を通り越して彼氏彼女を探したほうが
良いかなと思います。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

いっとき, お酒, クラス, サシ, タイプ, どちらか, ひと, 一人, 友だち, 団体, 女友達, 小学校, 彼氏彼女, 感情, 旅以外, 時間, 虚しいさや, 追記, 高知県,

名前空間の概要がすごい(´Д`)、

2015.07.06

Logging

 

名前空間の概要 ¶

(PHP 5 >= 5.3.0)

名前空間とは何でしょう? 広義の「名前空間」とは、項目をカプセル化するもののことです。 これは多くの場面で見られる抽象概念です。 たとえば、たいていの OS はディレクトリでファイルをグループ化します。 この場合、ディレクトリがその中のファイルの名前空間として機能しています。 具体的に言うと、foo.txt というファイルは/home/greg/home/other の両方に存在することが可能ですが、それらふたつの foo.txt を同じディレクトリに配置することはできません。 さらに、/home/greg ディレクトリの外から foo.txt にアクセスするには、ディレクトリ名をファイル名の前につけて /home/greg/foo.txt としなければなりません。 プログラミングの世界における名前空間も、この延長線上にあります。

PHP の世界では、名前空間は次のふたつの問題を解決するための手段として用意されています。 ライブラリやアプリケーションの作者が、 クラスや関数といった再利用可能なコード部品を作ろうとするときにこれらの問題にぶちあたることになります。

  1. あなたが作成したコードと PHP の組み込みのクラス/関数/定数 あるいはサードパーティのクラス/関数/定数の名前が衝突する
  2. 最初の問題を解決するためには、Extra_Long_Names のような長い名前をつけなければならない

名前空間の概要がすごい・・。ぶちあたるって・・どういう言い回しなんだ。仮にもPHP日本語公式サイト、この言い回しは、あまり適切とはいえないものの。クスってなりました。確かに名前空間ぶちあたりそうな考えです。この解説を読むと結構わかりやすく書いているのではないかと感じました。シンプルで分かりやすい例えのように感じます。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

foo.txt, greg, home, PHP 5, アプリケーション, クラス, サードパーティ, ディレクトリ, ディレクトリ名, ファイル, プログラミング, ライブラリ, 分かりやすい例え, 名前空間, 定数, 抽象概念, 概要, 組み込み, 言い回し, 関数,