ANLIFE、各丸して色を綺麗にしたら

2023.09.06

Logging

おはようございます、ANLIFE、各丸して色を綺麗にしたら可愛くなった、中身は変わっていないけど。このANLIFEの初期を宮崎駿 氏に見せて公の場でお叱りを受けたいわくつきのゲームです、でもカクマルして綺麗な色にして顔を付けなかったら、万人受けする育成ゲームに変わったなという印象です。

このゲーム、DNAを持っていて育成ゲームだけど世代交代を行い徐々に進化していくゲームです、Steamでも発売されているので、お試ししたい人は手にとってみたらどうでしょうか?

昔、たまごっちという育成ゲームが流行ったけど、あれは何だったんだろうか。何故、あんなにも流行ったのかが謎です。学生時代にたまごっちなどは触らなかったですが、その代わりにポケコンというポケットコンピュータで育成ゲームを自作した記憶があります。あの頃からゲームをするよりも作る方に興味を持ち出して、その流れでインターネットが流行りだしWEBに興味を持ち、じぶんのホームページをYahoo!ジオで作ったりして、今日に至っているのですから人生って後から思うと流れがあるけど、その当時、今が想像出来たかと問われるとNoですね。

なので、結果は後からついてくるから、あまり考えずに行動することも大事かなって思います。

タグ

ANLIFE, DNA, no, STEAM, web, Yahoo, いわくつき, お叱り, ジオ, じぶん, たまごっち, ポケコン, ポケットコンピュータ, 世代交代, 中身, , 初期, 宮崎駿, 記憶, ,

md5でいいのかそれで?。 #wp #phpcode

2022.11.17

Logging

おはようございます、いきなり寒くなりましたね。朝起きるのに勢いが必要になってきました😆。

今日はワードプレスでもパスワードの暗号化に使用されているmd5に関して思うことがあります。そもそもmd5は強固な暗号なのか?、答えはnoだと思いますよ。md5を使用すると32文字の暗号化された文字列が返却されます。確かに暗号化されているですけど・・・。同じ文字をもう一度、暗号化すると同じ文字列が返却されます、なので暗号化された文字列になるかどうかで、元の文字が割り出せてしまいます。

総当たりすれば時間はかかりますがパスワードが分かちゃうので、パスワードを保存する方法としては△な感じかと思います。じゃ何が良いかといえばphpの場合、password_hashと言う関数があるので、そちらを使用した方が得策かと思います。Eメールなどはmd5でも良いかも知れませんが微妙。

echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

因みに、パスワードなどやメールアドレスを平文で扱っている開発会社はよく見かけます。何故、平文を放置しているかと言えば直す暇がないなどの理由からだと思います。また、クライアント様がそうして欲しいなどの理由もあります。そういう事から個人情報が保護されていないデータベースはあります。

尚、自分が使用しているWEBサービスも個人情報にあたる部分は暗号化しています。なので、データーが流出しても直ぐに情報が漏れるということはないと思っています🫠。

タグ

32, 5, echo, hash, md, no, password, php, PHPCODE, quot, rasmusl, wp, こと, そちら, パスワード, プレス, メール, ワード, 一度, 今日, , 使用, 保存, , 勢い, 場合, 得策, 微妙, 必要, 文字, 文字列, , 方法, 時間, 暗号, 暗号化, , 答え, 総当たり, 返却, 関数,

htmlとcssとphp-初学非同期処理とおまけ-No.3

2022.11.14

Logging

おはようございます。月曜日の朝ですね‥お仕事探しは続いています。

さて、非同期処理とは何かと問われると詰まりますが・・・。いつ結果を返してくれない処理といえば良いのでしょうか。じゃ同期処理はといえば仕事が終わるまで次の仕事を進めない事といえば良いのかな🤔、教えるのが下手なのでぐぐってみてください。

document.querySelector(".btn").addEventListener("click", () => {
    let p = [document.querySelector("[name='name']").value, document.querySelector("[name='text']").value];
    [...document.querySelectorAll(".put")].forEach((elm, index) => {
        elm.innerText = p[index];
    });
    document.querySelector("#box2").style.display = "none";
    document.querySelector("#data").insertAdjacentHTML("beforeend", `<button class="btn2" type="button">非同期送信</button>`);
    document.querySelector(".btn2").addEventListener("click", async () => {
        //submit code
        let url = "./submit.php";
        let data = (() => {
            return ([...document.querySelectorAll(".put")].map((elm, index) => {
                return "test" + index + "=" + elm.innerText;
            })).join("&");
        })();
        const options = {
            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
                "Content-Length": data.length,
                'Accept': 'application/json'
            },
            body: data //JSON.stringify(data)
        };
        await fetch(url, options).then(response =>
            response.json()
        ).then(resultdata => {
            document.getElementById("view").insertAdjacentHTML("beforeend", resultdata.test0 + "," + resultdata.test1);
        }).catch(error => {
            console.log(error);
        });
    });
});


function imgchg(imagename){
    document.body.setAttribute("style","background-image: url(./assets/images/" + imagename + ".jpg");
}

ぐぐると自分言っていた意味がなんとなく分かるかと思います。ちなみに非同期動画(youtube)のおまけとして、背景画像を変える処理のソースコードを書いています。プログラムコードとしては3行ですが、初学者の方はこの3行のソースコードの方が面白いのかもしれません。自分が書いたソースコードを所々、変更して動かしてみてください。そうすることで、徐々にコードの意味が理解してくると思います。

追伸:サンプルサイトの動画は少しお休みします()?

https://358tool.com/sample-site/

タグ

, 39, addEventListener, btn, click, css, document, gt, html, let, name, no, php, querySelector, querySelectorAl, quot, Text, value, いつ, おまけ, お仕事, , 仕事, , 処理, 初学, 同期, 月曜日, , , 結果,

POSTとGETの考え方について伝えている動画。 #以心伝心

2022.11.12

Logging

おはようございます、11月なのに寒くないって不思議です😗温暖化。

さて、POSTとGETの考え方について無音声(音楽あり)で伝えている動画です、以心伝心で意味が通じると良いですが、それではブログを書いている意味がないので要点だけ解説します。POSTとGETとは、インターネット上でデータの送信を行うのに使用します。POSTの利点はデータを隠して送れることと、比較的に重いデータも送れることにあります。ではGET送信の利点は、SEOに有利と言ったところでしょうか。

htmlとcssとphp-初学POSTとGETの考え方-No.2
htmlとcssとphp-初学POSTとGETの考え方-No.2

今回、POST送信とGET送信を行い、PHPのプログラムでPOSTとGETを受信する方法を動画で伝えています。次回は非同期処理を使用して送受信を行う方法をプログラムで書いていきます。

HTMLとPHPプログラムは下記のソースを参照下さいませ🙇。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>demo site</title>
    <style>
html {
    width: 100vw;
    height: 100vh;
}

body {
    background-color: rgb(0, 0, 0);
    color: aliceblue;
    background-image: url(./assets/images/aig-mid22910-120-xl_TP_V.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

div.box {
    border-color: aliceblue;
    border-style: inset;
    position: absolute;
    width: 300px;
    height: 450px;
    color: white;
    border-radius: 1em;
    padding: 1em;
    top: 50%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%, -50%);
    /* background-color: #ffffff80; */
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    overflow-wrap: break-word;
    text-align: center;
}

div>form>p {
    font-weight: bold;
    margin: 13px;
}

input {
    opacity: 0.5;
}

textarea {
    opacity: 0.5;
}

button {
    padding: 5px;
    border-radius: 1em;
    border-style: solid;
    border-color: aliceblue;
    background-color: aliceblue;
    color: rgb(0, 0, 0);
}
button:hover{
    border-color: rgb(255, 255, 255);
    border-style: inset;
    background-color: rgb(27, 76, 119);
    color: aliceblue;
}
.put:nth-child(2){
    overflow: auto;
    height: 120px;
}
    </style>
</head>
<body>
    <div class="box">
        <div id="box2">
            <form action="submit.php" method="post">
                <p>名前:<input type="text" name="name"></p>
                <p><textarea name="text" id="" cols="30" rows="10"></textarea></p>
                <p><button class="btn" type="submit">確認</button></p>
            </form>
        </div>
        <div id="data">
            <p class="put"></p>
            <p class="put"></p>
        </div>
    </div>
    <script src="./assets/js/main.js"></script>
</body>

</html>
<?php
var_dump(xss_d($_POST));
print(xss_d($_POST["name"])."<br>");
print(xss_d($_POST["text"])."<br>");

function xss_d(mixed $val){
    if(!isset($val))return false;

    if(is_array($val)){
        foreach ($val as $key => $value) {
            $val[$key] = strip_tags($value);
            $val[$key] = htmlspecialchars($val[$key],ENT_QUOTES);
        }
    }else{
        $val = strip_tags($val);
        $val = htmlspecialchars($val,ENT_QUOTES);
    }

    return $val;

}

タグ

11, 2, css, DOCTYPE, GET, html, lt, no, php, POST, SEO, インターネット, こと, ソース, データ, ところ, ブログ, プログラム, 下記, 不思議, 今回, 以心伝心, 使用, 処理, 初学, 利点, 動画, 参照, 受信, 同期, 意味, 方法, 有利, 次回, 温暖化, 考え方, 要点, 解説, 送信, 送受信, 音声, 音楽,

htmlとcssとjavascript-初学フロント側-No.1#code

2022.11.07

Logging

おはようございます。今年もあと2ヶ月もないわけですよね早いものですね😮

htmlとcssとjavascript-初学フロント側-No.1という動画をYOUTUBEにUPしたのが昨日の9時のこと。これで理解出来るか、どうか分からない。解説もない教えもない、唯コードを書いているところを見せてるだけです。ソースコードは下記のサイトから参照できますが、次の動画作成のためにデザインや処理が変わっていたり、動作しなくなってたりするので注意が必要です。

https://358tool.com/sample-site/

自分はHtmlやcssはあまり覚えていないのですが、分かるのはそれなりに基本ベースがあるからだと思ってます。今からHtmlやcssを学ぶ人は全部を覚えようとはせずに、手を動かしてコードを書くことから始めて下さい。そのうち基本ベースは身につくことになると思います。

因みに自分が書いているclassの名前付けなどの書き方は駄目な書き方ですので、そういう所、お仕事として書く場合は会社によってキマりなんかが有りますので、そういう事まで知りたい人はこちらの動画を参照ください。

実戦マークアップ

タグ

, 2, 358, , cl, Code, com, css, html, https, javascript, no, sample-site, tool, UP, youtube, うち, コード, こと, これ, サイト, ソース, それなり, ため, デザイン, ところ, フロント, ベース, もの, 下記, , , 今年, 作成, 全部, 処理, 初学, 動作, 動画, 参照, 基本, 必要, , 昨日, , 注意, 理解, 自分, 解説, ,

Sqliteで作った簡易掲示板のコードを配布致します。#php #code

2022.09.20

Logging

おはようございます。台風は過ぎ去りましたがせっかくの三連休が残念です💦。

今日は先日、Sqliteを使用して簡易掲示板を作ってみましたのでコードを配布致します、尚、PHP8の環境下で動作させています(PHP7系でも動作すると思います)。

Sqliteってnow()関数がなかったりだとか、Deleteする時に、noカラムを昇順しlimitを使用して削除出来ないだとか、いろいろとMysqlとは違う所があり、面倒だなと思いながらコードを書きました、尚、SqliteはWebサーバーの階層に置かないように、置いても良いですが・・・。そのままの状態だと誰でもダウンロードが可能になってしまいますのでご注意ください。自分は地下に眠らしています😅。

一応、二重投稿防止の為に20秒経過しないと再投稿出来ないようにしています😌。トライしていない事は禁止ワード等がありません🤔。つけようと思ったのですがまぁ良いかなと、、、。

動作している環境のリンクはこちら。

https://reborn9.sakura.ne.jp/

軸となるPHPのソースコードを2つ貼っときますね。

<?php
session_start();
$toke_byte = openssl_random_pseudo_bytes(16);
$csrf_token = bin2hex($toke_byte);
$_SESSION['csrf_token'] = $csrf_token;
?>
<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="Description" content="Enter your description here" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <link rel="stylesheet" href="assets/css/style.css?<?= time() ?>">
    <title>掲示板</title>
</head>

<body class="p-3 text-white">
    <div class="p-4 shadow rounded" style="background-color:#d6dbdf;">
        <div class="container mt-5">
            <div class="row">
            <div class="col-12 text-center">
                <h1 class="shadow" style="color:#195a57;">掲示板::version 2.5</h1>
            </div>
                <div class="col-12">
                    <div class="input-group shadow rounded">
                        <div class="input-group-append">
                            <span class="input-group-text bg-dark text-white" id="my-addon">ニックネーム</span>
                        </div>
                        <input class="form-control" type="text" name="name" placeholder="ニックネームを入力" aria-describedby="my-addon">
                    </div>
                    <div class="form-group shadow rounded">
                        <label for="my-textarea">コメント</label>
                        <textarea id="my-textarea" class="form-control" name="comment" rows="7"></textarea>
                    </div>
                    <button id="btn" class="mt-2 btn btn-info text-white shadow rounded" type="button">投稿する</button>
                </div>
            </div>
        </div>
        <div class="container mt-5">
            <div class="row">
                <div id="view" class="col-12"></div>
            </div>
        </div>
    </div>
    <footer>
        <a href="/">TOP</a> :: © Reborn9.sakura.ne.jp <?=date("Y")?>
    </footer>
    <input type="hidden" name="csrf_token" value="<?= $csrf_token ?>">
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/js/bootstrap.min.js"></script>
    <script src="assets/js/main.js?<?= time() ?>"></script>
</body>

</html>
<?php
class db
{
    var $pdo = null;
    function __construct()
    {
        try {
            $this->pdo = new PDO("sqlite:../../bbs.sqlite3");
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);        //code...
        } catch (\Throwable $th) {
            //throw $th;
            print $th->getMessage();
        }
    }
    function select_limit()
    {
        if($this->pdo){
            $stmt = $this->pdo->prepare('select * from bbs order by no desc limit 0,5');
            $stmt->execute();
            $result = $stmt->fetchAll();
            $stmt = null;
            $this->pdo = null;
            return new view($result);
        }
    }
    function insert($name,$comment,$sns_cnt=0)
    {

        try {
            $stmt = $this->pdo->prepare('INSERT INTO bbs (`time`,`name`,`comment`,sns_cnt)values(strftime(\'%Y年%m月%d日 %H時%M分%S秒\',CURRENT_TIMESTAMP, \'localtime\'),:name,:comment,:sns_cnt)');
            $stmt->bindParam(':name', $name, PDO::PARAM_STR);
            $stmt->bindParam(':comment', $comment, PDO::PARAM_STR);
            $stmt->bindParam(':sns_cnt', $sns_cnt, PDO::PARAM_INT);
            $stmt->execute();
            $stmt = $this->pdo->prepare('DELETE FROM bbs WHERE bbs.no = (SELECT no from bbs ORDER BY no ASC LIMIT 1);');
            $stmt->execute();
            $stmt = null;
            $this->pdo = null;
            return true;
        } catch (\Throwable $th) {
            print $th->getMessage();
            return false;
        }
    }
}

class view{
    var $item = null;
    function __construct($item)
    {
        $this->item = $item;        
    }
    function view_item($item="")
    {
        try {
            $item = $item?$item:$this->item;
            ob_start();
            ?>
            
            <?php
            foreach($item as $key=>$value){
                ?>
                <div class="mt-2 row txtbox shadow rounded">
                <div class="col-3 name_<?=$value["no"]?> rounded-start fs-6">
                    ニックネーム::<?=$value["name"]?>さん
                </div>
                <div class="col-9 time_<?=$value["no"]?> fs-6">
                    投稿日時::<?=$value["time"]?>
                </div>
                <div class="col-12 comment_<?=$value["no"]?>">
                    <?= nl2br($value["comment"])?>
                </div>
                <div class="col-12 sns_cnt_<?=$value["no"]?>">
                    <!-- <?=$value["sns_cnt"]?> -->
                </div>
                </div>
                <?php
            }        
            ?>
                
            <?php
            $ret["view"]= ob_get_clean();
            $ret["msg"]= "done";
    
        } catch (\Throwable $th) {
            //throw $th;
            $ret["msg"] = "error";
        }
        return $ret;
    }
}

session_start();
$ret = null;
$mode =  xss_defence($_POST["mode"]);
// $time =  ;
$name =  xss_defence($_POST["name"]);
$comment =  xss_defence($_POST["comment"]);
$sns_cnt =  (int)xss_defence($_POST["sns_cnt"]);
if (isset($_POST["csrf_token"]) 
 && $_POST["csrf_token"] === $_SESSION['csrf_token'] && (function($t){
    return time() - $t > 20?true:false;
 })($_SESSION["save"])) {
    if($mode==="save"){
        $name = !preg_replace("/[ | ]/","",$name)?"匿名":$name;
        $comment = !preg_replace("/[ | ]/","",$comment)?"":$comment;
        if($comment){
            $db = new db();
            $db->insert($name,$comment);
            $_SESSION["save"] = time();
        }
    }
    $db = null;
    $db = new db();
    $ret = $db->select_limit()->view_item();
    print  json_encode($ret);
}
function xss_defence($value){
    if(is_array($value)){
        foreach($value as $key=>$val){
            $value["$key"] = strip_tags($val);
            $value["$key"] = htmlspecialchars($value["$key"],ENT_QUOTES);
        }

    }else{
        $value = strip_tags($value);
        $value = htmlspecialchars($value);
    }
    return $value;
}

配布コードはこちらです。

タグ

20, 7, 8, Code, Delete, LIMIT, MYSQL, no, Now, php, Sqlite, web, いろいろ, カラム, コード, ご注意, サーバー, せっかく, そのまま, ダウンロード, トライ, ワード, 三連, , , 今日, , 使用, 先日, 削除, 動作, 可能, 台風, 地下, , 投稿, 掲示, 昇順, , 残念, , 状態, 環境, 禁止, 簡易, 経過, 自分, , , 配布, 関数, 防止, 階層, 面倒,

一定の上限を超えたデータを削除するMYSQL文を作りました。

2022.07.26

Logging

おはようございます。今日は手続きに奔走してきます。

さて一定の上限を超えたデータを削除するMYSQL文を作りましたので、お裾分けです。下記のコードはidを降順にした上で、自動でnoを割り振ります。自動で割り振ったnoを元に条件件数を超えるデータは削除しております。なぜ、このようなMYSQL文を作ったかというと日付では判別出来ない削除データがあったからです。

DELETE T1 FROM test_tbl AS T1 
inner join (SELECT ROW_NUMBER() OVER(ORDER BY id DESC) AS rownum,id from test_tbl) AS T2
on T1.id = T2.id WHERE T2.rownum >= 4590;

この方法を使用するとサブクエリでいろいろな条件をしていた上でナンバーを割り振り削除することが出来ます。他にも方法はあると思いますが自分が思いついた、まぁある程度、処理の早い削除かと思います。是非、ご活用頂ければ幸いです。

タグ

AS rownum, DELETE T, FROM test_tbl, gt, ID, id from test_tbl, inner join, MYSQL文, no, ORDER BY id DESC, over, SELECT ROW_NUMBER, お裾分け, サブクエリ, ナンバー, 一定, 上限, 日付, 条件件数, 降順,

セレクトメニューの都道府県は毎回、作るよりストックしておくべし。

2021.12.13

Logging

駆け出しフロントエンドエンジニアさんや駆け出しコーダーさんの中にはお問い合わせなどで、都道府県を毎回、書いている人はいると思いますが、大体、同じことを何回もするのは無駄です。なので、自分専用の雛形を作っておくといいですよ。そうする事によって作業は結構、短縮されたりします。今回は自分がよく使う、セレクトメニューの都道府県をJSで都道府県リストを生成するように作りました。

都道府県生成

繰り返しになりますが、こんな感じに自分が使用するデータや独自の関数はストックしておくと作業効率は上がります、毎回調べてプログラミングやコードを書くのは仕事上では手間になるので辞めた方が良いです。

最後にJSコードとGitHubのリンクを貼っときますので、ご自由使用くださいませ。

https://github.com/zip358/select_jp_ken

let useKendata = [
    {'no':'01','name':'北海道'},
    {'no':'02','name':'青森県'},
    {'no':'03','name':'岩手県'},
    {'no':'04','name':'宮城県'},
    {'no':'05','name':'秋田県'},
    {'no':'06','name':'山形県'},
    {'no':'07','name':'福島県'},
    {'no':'08','name':'茨城県'},
    {'no':'09','name':'栃木県'},
    {'no':'10','name':'群馬県'},
    {'no':'11','name':'埼玉県'},
    {'no':'12','name':'千葉県'},
    {'no':'13','name':'東京都'},
    {'no':'14','name':'神奈川県'},
    {'no':'15','name':'新潟県'},
    {'no':'16','name':'富山県'},
    {'no':'17','name':'石川県'},
    {'no':'18','name':'福井県'},
    {'no':'19','name':'山梨県'},
    {'no':'20','name':'長野県'},
    {'no':'21','name':'岐阜県'},
    {'no':'22','name':'静岡県'},
    {'no':'23','name':'愛知県'},
    {'no':'24','name':'三重県'},
    {'no':'25','name':'滋賀県'},
    {'no':'26','name':'京都府'},
    {'no':'27','name':'大阪府'},
    {'no':'28','name':'兵庫県'},
    {'no':'29','name':'奈良県'},
    {'no':'30','name':'和歌山県'},
    {'no':'31','name':'鳥取県'},
    {'no':'32','name':'島根県'},
    {'no':'33','name':'岡山県'},
    {'no':'34','name':'広島県'},
    {'no':'35','name':'山口県'},
    {'no':'36','name':'徳島県'},
    {'no':'37','name':'香川県'},
    {'no':'38','name':'愛媛県'},
    {'no':'39','name':'高知県'},
    {'no':'40','name':'福岡県'},
    {'no':'41','name':'佐賀県'},
    {'no':'42','name':'長崎県'},
    {'no':'43','name':'熊本県'},
    {'no':'44','name':'大分県'},
    {'no':'45','name':'宮崎県'},
    {'no':'46','name':'鹿児島県'},
    {'no':'47','name':'沖縄県'},
];
document.getElementById("ken").insertAdjacentHTML('afterbegin',(function(ken){
    let str = '';
    for (const key in ken) {
        str+= '<option value=' + ken[key].no + '>' + ken[key].name +'</option>';
    }
    return str;
}(useKendata)));

タグ

01, 39, github, JS, let, name, no, useKendata, エンジニア, エンド, お問い合わせ, コーダー, コード, こと, ご自由, ストック, セレクト, データ, プログラミング, フロント, メニュー, リスト, リンク, , , , 今回, 仕事, 何回, 作業, 使用, 効率, 北海, 大体, 専用, 感じ, 手間, , 最後, 毎回, 無駄, 生成, 短縮, 自分, 都道府県, 関数, 雛形, 駆け出し,

高知県のダム貯水率グラフ化2

2020.03.26

Logging

以前、高知県のダム貯水率のグラフ化してみた事があるのですがいつの間にかデータが取得できなくなっていたようです。なので取得できるようにPHPコードを変更しました。高知県のダム貯水率をJSON形式で吐き出してほしいなと思う人は少数ながらいると思います。そんな方は私がJSON形式で吐き出したデータを密かに使っていたりするのかな?因みにプログラム出来るよというひとは自身で貯水率のデータが転がっているURLを掲載しますので解析して頂ければ有り難いと思います。

https://suibo-kouho.suibou.bousai.pref.kochi.lg.jp/suibou/main.html?no=4&no2=0&fnm=openTable

<?php
$html = file_get_contents("高知県のダム貯水率のURL");
$html = mb_convert_encoding($html,"UTF-8","SJIS");
$dom = new DOMDocument();
$html = mb_convert_encoding($html, "HTML-ENTITIES", 'UTF-8');
@$dom->loadHTML($html,LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$ary=array(
    "永瀬ダム"=>"nagase",
    "鎌井谷ダム"=>"kamaidani",
    "鏡ダム"=>"kagami",
    "早明浦ダム"=>"sameura",
    "桐見ダム"=>"kirimi",
    "坂本ダム"=>"sakamoto",
    "大渡ダム"=>"oodo",
    "中筋川ダム"=>"nakasugawa",
    "以布利川ダム"=>"iburigawa"
);
for($i=1;$i<=9;$i++){
    $r[$xpath->query("/html/body/form/div[2]/table/tbody/tr[$i]/td[3]")->item(0)->textContent] = preg_replace("/[\x{00a0}|?]/u","",$xpath->query("/html/body/form/div[2]/table/tbody/tr[$i]/td[7]")->item(0)->textContent);
}
foreach ($r as $key => $value) {
    $obj[$ary[$key]] = $value;
}
//echo '{"nagase":"91.16","kamaidani":"77.57","kagami":"39.32","sameura":"100.00","kirimi":"46.09","sakamoto":"99.38","oodo":"98.70","nakasugawa":"77.90","iburigawa":"99.12"}';
print json_encode($obj);

https://zip358.com/tool/demo6/index.html

タグ

0, 2, 4, amp, bousai, contents, convert, encoding, file, fnm, GET, html, https, jp, json, kochi, LG, lt, main, mb, no, openTable, php, pref, quot, suibo-kouho, suibou, url, グラフ, コード, ダム, データ, ひとは, プログラム, , , 取得, 変更, 少数, 形式, 掲載, , , 自身, 解析, 貯水, 高知県,

YOUTUBEオワコンあと1年か2年!?

2020.01.26

Logging

『YOUTUBEオワコンあと1年か2年で終わり?』とか言われている。自分もこれは聞いた事がある、イケダハヤトさんやマナブさんなどもその話をしている。この話は半分は間違っていないかなぁと思います。解説はマナブさんの方が親切に現状を語っています。ちなみに彼らが言うには今の所、YOUTUBEは稼げるみたい。

【悲報】YouTuberはマジで難しいので、ほぼ挫折すると思う【無理ゲー】

確かに去年の暮あたりから今年にかけてYOUTUBEに芸能人が参入しているのは自分も知っている、YOUTUBERという職業は戦国時代になってきているので確かに上位を狙うのは大変な気がしますが、唯、生活できるぐらいの収入を得たいと思う方はいまの所、大丈夫じゃないかなと考えています。

【悲報】YouTuberの将来性とは【2年後の未来は、不明な職業です】

■超有名YOUTUBER
ヒカキンさんはそろそろ引退するのかもと思っている。髪の具合とかも心配…だ、はじめしゃちょーさんも十分稼いでいるので突然引退するかもしれませんね。この人達のレベルになると芸能人が競争相手になるだろうな。

【旅動画】大阪でたこ焼き&ラーメンのグルメ旅!ヒカキン&はじめしゃちょーが行く!

でも、そもそもテレビが面白くないのでYOUTUBEでお好みのYOUTUBERを観ているわけだから、芸能人がTV業界の人達とタッグを組んでYOUTUBEに参入してTV番組と同じことをしていたら、YOUTUBERの敵にすらならないじゃないかと自分は思っている。YOUTUBEオワコンと言っている人が増えているのは訳がある。視聴者数はあまり変わらないのにYOUTUBERになりたい人がかなり増えてきている。中間層のYOUTUBERは競争相手が増え自分たちが淘汰されることが心配なんだろう。

■YOUTUBEは成熟期?
YOUTUBEは、成熟期だと考えていてこれから衰退期に入っていくと考えている人が多いけど、昔同じ様に言われたSNSサービスはそうでもなく生きている。何故、衰退しないか?世界に提供しているSNSサービスは余程の問題がない限り安定した収益が望める、そのため資本がある。新しいSNSサービスが登場しても模倣したサービス開発することも可能だし、またその会社を買収すること可能なため結果的にパイは取られないのだ。YOUTUBEも同じだと考えている、なのでYOUTUBERは基本的に職業として有り続けると思っている。繰り返しになりますが上位を狙うのはとても厳しい世界になることは間違いない。

それはYOUTUBEへ広告費を支払う企業の増加と相似しそうだ。

タグ

, 2, 7, com, https, no, Pk, watch, www, XFJX-, youtube, YOUTUBER, あと, イケダハヤト, いま, オワコン, これ, はじめしゃちょー, ヒカキン, マナブ, 上位, , , 今年, 具合, 半分, 去年, 参入, 収入, 大変, 引退, 彼ら, 心配, 戦国時代, , , , , 現状, 生活, 職業, 自分, 芸能人, 親切, 解説, , 超有名, ,

自分には一貫性がない?

2016.09.02

Logging


今日のお題は「自分には一貫性がない?」です。
これを書いているのは8月23日です・・・投稿されるのは
9月2日に設定しています。

一貫性とは
始めから終わりまで同じ一つの方針・考えによっていること。
goo辞書より

 
自分で言うのも何ですが、自分は他人の意見に流されやすい所があります。
そういう意見もあるなら、それでも「いいじゃねぇ」と言うように
何か納得してしまったりします。特に尊敬している人が
言っている言葉なら、「そうだな」「それも有りだな」って具合に
鵜呑みにしてしまう時があります。
この頃は、それは「どうだろうか」と思い考えるように
していますが、それでもなかなか難しい・・・ですね。
特にTVは危ういです。何か考える隙がないような
作りにしているような気がしますね。考える隙を作らず
「YES」か「No」という気持ちに持っていく作りに
している所が危ういかなと思います。
ちなみに自分のブログの記事は
あまり一貫性はないですが、読んでいると何を
言わんとするかは分かってもらえると思います( ゚д゚ )。

タグ

2, 23, 8, , goo, nbsp, no, TV, yes, これ, それ, ブログ, 一つ, 一貫性, , 今日, 他人, , 作り, 具合, 尊敬, 意見, , 投稿, 方針, , , 気持ち, 納得, 自分, 言葉, 記事, 設定, 辞書, , , , 鵜呑み,

PHP失恋再帰処理:会いたい、会いたい、会えない(´Д`)。

2016.06.02

Logging


PHP失恋再帰処理:会いたい、会いたい、会えない(´Д`)。
こんな未練タラタラしてはいけません。
とくに男は未練タラタラになりやすいので・・・・。
トイウコトデ
このループを抜け出すには7にならないと
抜けだせません。
なので、このプログラムには欠陥があります。
値を変えると無限ループに陥るのです(´Д`)(´Д`)えぇぇ?
 

<?php
$n["0"] = "会いたい";
$n["1"] = "会いたい";
$n["2"] = "会いたい";
$n["3"] = "会いたい";
$n["4"] = "会いたい";
$n["5"] = "会いたい";
$n["6"] = "会えない";
$str = aenai($n);
echo "(´Д`)デブオなんかにあうかよ!"."\n";
print_r($str);
function aenai($n=array(),$no=0,$str_n=array(),$str_no=0){
    if(mb_strlen($n[$no])<16 && (mb_strlen($n[$no]) + mb_strlen($str_n[$str_no])<16) && $no <7){
        $str_n[$str_no] .= $n[$no];
        echo "A:str_n_mozi:".mb_strlen($str_n[$str_no])."str_no:".$str_no.$str_n[$str_no]."\n";
        $no++;
    }elseif(mb_strlen($n[$no])<16 && (mb_strlen($n[$no]) + mb_strlen($str_n[++$str_no])<16) && $no <7){
        $str_n[$str_no] .= $n[$no];
        echo "B:str_n_mozi:".mb_strlen($str_n[$str_no])."str_no:".$str_no.$str_n[$str_no]."\n";
        $no++;
    }
    if($no==7){
        echo "(´Д`)このデブが";
        print_r($str_n);
        return $str_n;
    }else{
        return aenai($n,$no,$str_n,$str_no);
    }
}

 

タグ

$str_no, AM, array, echo, elseif, function aenai, mb_strlen, no, PHP失恋再帰処理, print_r, return aenai, str_n_mozi, デブオ, トイウコトデ, プログラム, ループ, 欠陥, 無限ループ, ,

映画、チャッピーを観てきましたので感想なんかを。 #映画レビュー

2015.05.23

Logging

映画、チャッピーを観てきましたので感想なんかを残しときます。この映画、期待度No.1だそうです、映画を観た感想ですが意外に、良かったです。最初はちょっと生々しいと思う映像ですけど、徐々に慣れてくると見れる映画だと思います。例えると初期のワイルドスピードみたいな映像です。この映画、若干、暴力的なシーンがあるもののストーリーは結構しっかりしていました。有りがちな内容だとは思うものの最後まで飽きのこない感じに作られていました。ただ、「テンション」っていう服は無いなと思ってしました{あっ(´Д`)?間違った格好いい日本語だと心の中でツッコミをいれた人はいると思います!!}、この場面でテンションって映像はないだろと思いました・・・・、日本人なら映画よりその服に書いているテンションって言う文字に目が付くと思います。最後の最後で若干やらかした感はあるものの内容的はよかったです。
ちなみに、この頃の人工知能を取り扱った映画って、こう言う落ちが多い気がします。落ちの内容は言いませんが、実際それって命って何だろうとか、心って何だろうとか。そういう事につながってくると思うですよね。いずれ人類は自我(意識)のある人工知能を作ってしまうでしょうけど・・・そうなった時、人の想像を超えることが起きてもおかしくはないと思います。SF映画って基本的に警鐘を鳴らす意味合いも込められて作られていると思うですね、今回のチャッピーという映画も同じような警鐘を鳴らしていたということは、近い未来なのか遠い未来なのかは分かりませんが、そうなってもおかしくないという事なんだと思います。そこまで考えて観る人はあまりいないような気がしますが、監督は何か意図するところがあっただと思います。また、ニール・ブロムカンプ監督の映画って、「第9地区」、「エリジウム」そして「チャッピー」とストーリーの中に必ず貧困層が出てきます。おそらく次回作にも貧困層が出てくるでは無いかと思ってます。それは何か監督の意図があるからだと思います。

映画『チャッピー』予告 2015年5月23日(土)公開

タグ

, no, シーン, ストーリー, スピード, チャッピー, ツッコミ, テンション, レビュー, ワイルド, , , 人工, 内容, 初期, 場面, , , 感じ, 感想, 文字, 日本人, 日本語, 映像, 映画, 最初, 最後, , 期待, , 知能, 若干, , ,

NO LIMIT[ノーリミット]栗城史多さんの場合:自分を超える方法。

2014.08.22

Logging

依然、登山家、栗城史多さんが書かれたノーリミットと言う本を読みました。その後、アルプス?の登山時に凍傷で指を切断しないといけないという事になりました。しかし彼、栗城史多さんは切断しないという選択枠を模索していろいろと試した方です。結局、指を切断するという事に至ったのですが、その模索する過程で、もがき苦しみ、いろいろと学んだことがあると思います。自分が思うに指が無くなってからの方が、何だか真の登山家に見えてしまうのは自分だけなのかな?今は指を失った彼ですが、再生医療によりこの指が再生できるようになるのは、本当にあともう少しの話だと思います。ちなみに紛失した指や手を再生する技術は出来ています。あとは国の認可が降りるのを待つだけなのです{細胞外マトリックス:まとめ参照}。

タグ

LIMIT, no, あと, アルプス, いろいろ, こと, ノーリミット, まとめ, マトリックス, , , 再生, 凍傷, 切断, 医療, 参照, 史多, , 場合, , , , 技術, , , 方法, , 本当, 栗城, 模索, 登山, 登山家, , 紛失, 細胞, 自分, , 認可, 過程, 選択枠,

映画:時をかける少女:タイム・ウェイツ・フォー・ノー・ワン

2014.08.19

Logging

時をかける少女(劇場予告)


タイム・ウェイツ・フォー・ノー・ワン{time waits for no one}=過ぎ去った時間は戻らないとかいう意味らしいです。この時をかける少女というアニメ映画はよく出来ているなと思います。内容の方は記載しませんが、結構おすすめ度の高いアニメ映画です。過ぎ去った時間は戻らないけど、未来は自分で切り開けます。この映画は過去に何度もタイムスリップして過去を書き換えていますが、実際、この世界は多次元{たぶん}なので、タイムスリップして過去を変えたとしてもそこから、次元が分岐するというオチ{突っ込みどころ(´Д`)}。過去に何度もタイムスリップするということは多次元世界(パラレルワールド)を複数つくる事になるのではないかと自分は思っています。そんな身も蓋もない事を考えて観なければ良いだけですね{※この映画、時をかける少女、青春アニメ映画は面白かったです}。
ちなみに、多次元世界の話でうまく説明している映画があります、ミッション: 8ミニッツ(ソースコード)と言う映画で何度も過去に戻って爆弾処理(何度も失敗する)をするというストーリーです、コレを観ると多次元世界と時間との関係をうまく説明しているように思えます。
時をかける少女もおすすめですが、映画、ミッション: 8ミニッツもおすすめ度の高い映画です。

タグ

com, For, ge-CeHgimHU, https, no, one, time, waits, watch, www, youtube, アニメ, ウェイツ, おすすめ, オチ, こと, スリップ, そこ, タイム, ノー, パラレルワールド, フォー, ワン, 世界, , 何度, 内容, 分岐, 多次元, 実際, 少女, 意味, , , 映画, , 時間, 未来, 次元, 自分, , 複数, 記載, , 過去, 青春,