Qiitaのfeedを取得して表示するだけのコード非同期編? #phpcode

2022.11.06

Logging

おはようございます。昨日の続きのお話ですコードは金曜日に書きました😗。

動画を見ていただければわかるかと思いますが即興で書いたコードです、最後の最後でエラーってる!?ところなんかも編集していない所が伝わってくるかと思います。ちなみに画質HDのフル画面で見ないとコードは見えないかなって思います。

任意のユーザーのQiita、feedを取得して表示するだけのコード😋非同期編?
任意のユーザーのQiita、feedを取得して表示するだけのコード😋非同期編?

音声も今後入れていくかもしれません。

任意のユーザーのQiita、feedを取得して表示するだけのコード😋非同期編?

任意のユーザーを増やしたい場合はmain.jsの先頭行(2行目?)のqiitaIDに任意のIDを追加するだけで取得可能です。解説はなしですけど一応、何をやっているのかそれなりに、わかるように心がけたつもりです。あとは盗んで覚えてください😂。

ソースコードはこちらになります。

<?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">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <style>
        .qiita_feed-list>li {
            /* font-weight: bold; */
            color: aliceblue;
        }

        .qiita_feed-list>li>a {
            color: aliceblue;
        }

        body {
            background-color: #60b111;
        }

        .shadow-lg {
            box-shadow: 0 1rem 3rem rgba(255, 255, 255, .195) !important;
        }
    </style>
    <title>Qiita-feed</title>
    <?php
    require $_SERVER['DOCUMENT_ROOT'] . "/header_script.php";
    ?>
</head>

<body>
    <input type="hidden" id="csrf_token" value="<?= $csrf_token ?>">
    <div class="container">
        <div class="row">
            <div class="col-12">
                <h1 class="text-light">Qiita-feed</h1>
            </div>
        </div>
    </div>
    <div class="container mt-2">
        <span id="view"></span>
        Copyright <?= date("Y") ?>  <a href="https://358tool.com">358tool.com</a>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
    <script src="./js/main.js?<?= time() ?>"></script>
</body>

</html>
//qiita feed
["taoka-toshiaki","mpyw","suin"].forEach(id=>{
    let data = {
        csrf_token:document.getElementById("csrf_token").value,
        feedid:[id]
    };
    let url = "./qiita-feed.php";
    qiita_feed(url,data);
});

async function qiita_feed(url, data) {
    const options = {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        },
        body: JSON.stringify(data)
    }
    await fetch(url, options).then(response =>
        response.json()
    ).then(resultdata => {
        document.getElementById("view").insertAdjacentHTML("beforeend",resultdata.reshtmlcode)
    }
    ).catch(error => {
        console.log(error);
    }
    );
}
<?php
session_start();
$obj = json_decode(strip_tags(@file_get_contents("php://input")));

if (isset($obj)) {

    if (isset($obj->csrf_token)  && $_SESSION["csrf_token"] === $obj->csrf_token) {
        $str ="";
        foreach ($obj->feedid as $key => $id) {
            $str.= '
        <div class="row shadow-lg p-3 mb-5 bg-body rounded">
            <div class="col-12">
            🌿<span class="text-light">://qiita.com/' . xss_d($id) . '/feed :[引用]</span>';
            $str .= get_Qiitafeed("https://qiita.com/" . xss_d($id) . "/feed");
            $str .= '
             </div>
        </div>      ';
        }
        $res["reshtmlcode"] = $str;
        print json_encode($res);
    }
}


function xss_d(mixed $val): mixed
{
    if (is_array($val)) {
        foreach ($val as $key => $value) {
            $val[$key] = htmlentities($value, ENT_QUOTES);
        }
    } else {
        $val = htmlentities($val, ENT_QUOTES);
    }
    return $val;
}

function get_Qiitafeed(string $feedUrl): string
{
    $xml = @simplexml_load_file($feedUrl);
    if (isset($xml->entry)) {
        $str = "<ul class='qiita_feed-list'>";
        foreach ($xml->entry as $key => $val) {
            $str .= "<li><a href='{$val->url}'>" . $val->title . "</a></li>";
        }
        $str .= "</ul>";
    }
    return $str;
}

タグ

2, feed, HD, ID, JS, main, PHPCODE, qiita, qiitaID, あと, エラー, お話, コード, こちら, ソース, つもり, ところ, プル, ユーザー, 今後, 任意, , 先頭, 動画, 即興, 取得, 可能, 同期, 場合, , 昨日, 最後, 画質, 画面, 編集, 表示, 解説, 追加, 金曜日, 音声,

Qiitaのfeedを取得して表示するだけのコード。 #php

2022.11.05

Logging

おはようございます、土曜日の朝ですね😗。

今日は文化の日にQiitaにUPしたfeedを取得して表示するだけのコードを書きました。見た目はこんな感じでQiitaの雰囲気を取り入れたデザインにしています。デモ版として実際にサーバーで起動しているモノです、feedを取得しているユーザーは自分を入れて3人です。

表示する人数が多くなるとページを描画する時間が遅くなるので実質、10人が限度かも知れないです。もし何人ものユーザーを取得したいと考えている方は表示部分と処理部分を別けて、尚且つ処理部分は非同期処理で変更することを推奨します。

尚、明日には2つに別けたプログラムコードを別記事として記載しますので、しばしお待ち下さいませ🙇。

今回のソースコードはこんな感じになってます。

<?php
    function get_Qiitafeed(string $feedUrl){
        $xml = @simplexml_load_file($feedUrl);
        if(isset($xml->entry)){
            print("<ul class='qiita_feed-list'>");
            foreach($xml->entry as $key=>$val){
                print("<li><a href='{$val->url}'>".$val->title."</a></li>");
            }
            print("</ul>");
        }
    }
?>
<!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/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<style>
    .qiita_feed-list > li{
        /* font-weight: bold; */
        color:aliceblue;
    }
    .qiita_feed-list > li > a{
        color:aliceblue;
    }
    body{
        background-color:#60b111;
    }
    .shadow-lg {
        box-shadow: 0 1rem 3rem rgba(255,255,255,.195)!important;
    }    
</style>
<title>Qiita-feed</title>
<?php
    require $_SERVER['DOCUMENT_ROOT'] ."/header_script.php";
?>
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-12">
                <h1 class="text-light">Qiita-feed</h1>
            </div>
        </div>
    </div>
    <div class="container mt-2">
        <?php
            $Id_List = ["taoka-toshiaki","mpyw","suin"];
            foreach ($Id_List as $key => $id) {
            ?>
        <div class="row shadow-lg p-3 mb-5 bg-body rounded">
            <div class="col-12">
                🌿<span class="text-light">://qiita.com/<?=$id?>/feed :[引用]</span>
                <?=get_Qiitafeed("https://qiita.com/".$id."/feed")?>
            </div>
        </div>            
            <?php
            }
        ?>
        Copyright <?=date("Y")?>  <a href="https://358tool.com">358tool.com</a>
    </div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
</body>
</html>

タグ

10, 2, , feed, feedUrl, function, GET, lt, php, qiita, Qiitafeed, string, UP, お待ち, コード, こと, サーバー, ソース, デザイン, デモ版, プログラム, ページ, もの, ユーザー, 人数, 今回, 今日, 何人, 処理, 別記事, 取得, 同期, 土曜日, 変更, 実質, 実際, 感じ, 推奨, 描画, 文化の日, , 明日, 時間, , 自分, 表示, 見た目, 記載, 起動, 部分, 限度, 雰囲気,

新着記事が表示されるWPの非公式プラグインを作りました。

2022.07.24

Logging

こんにちは、朝の2時に起床し4時頃、ウォーキング。そして朝食後、コードを書いてその後、仮眠をとって今、記事を書いています。かなり不規則な生活リズムです😩、今日からは元の生活リズムへ戻そうと思っています。さて、WordPressの非公式プラグインを自前で制作致しましたのでお裾分けです。

今回はシングルページの記事の下に新着記事が表示されてカルーセルで動くというプラグインです。

新着記事が表示されるWPの非公式プラグインを作りました。

アイキャッチ画像の大きさなどはご自身でソースコードを変更してご使用ください。尚、アイキャッチ画像がないには対応しておりません。

いらないパラメーターを投げている所があります。そちらは御自身で修正をお願いします、因みに今は新着記事5記事を取得している感じです、そちらも変更はソースコードを修正してお使いいただければと思っています。

ダウンロードのURLは下記になります。

https://zip358.com/plugin/new-post.zip

追伸:カールセルUIはSlickを使用しております。

タグ

2, 358, 4, 5, com, https, plu, url, WordPress, wp, www, zip, あい, ウォーキング, お使い, お裾分け, お願い, かなり, カルーセル, キャッチ, コード, ご自身, シングル, ソース, そちら, ダウンロード, パラメーター, プラグイン, ページ, リズム, , 下記, 不規則, , 今回, 今日, 仮眠, 使用, 修正, , 公式, 制作, 取得, 変更, 対応, , 感じ, , 新着, , 朝食, 生活, 画像, 自前, 自身, 表示, 記事, 起床,

E_ERROR | E_WARNING | E_PARSE🐸

2022.06.15

Logging

おはようございます。果報は寝て待て😌。果報(かほう)を家宝だと思い込んでいました・・思い込みって怖いですね。

先日、記載した「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」ですがphp.iniのワーニング(警告表示)が問題でした。そこをE_ERROR | E_WARNING | E_PARSEに修正してあげることで難無く解決済みです。JSONの返却の際に警告表示も返却され正しい値が取得出来ていなかったことに問題があったようです。

因みにこの頃は警告表示も意識してコードを書く機会が多くなりました。その理由はそちらの方がスマートかなって思うからです。数式が美しいと思うように綺麗なコードというものはあります。まだまだ、プログラムのコードは美しく書けませんが意識することによりそれに近づける事は大事になると思っています。

尚、php.iniは大体、/etc/php.iniにあります?、無ければコマンドラインからかコードに下記のように記載してphp.iniは何処に保存しているか調べてみてください。

php -r "echo phpinfo();" | grep "php.ini"
<?php
echo phpinfo();

タグ

Error, etc, ini, json, parse, php, WARNING, かほう, コード, こと, スマート, そこ, そちら, それ, プログラム, もの, レスポンス, ワーニング, , 修正, , 先日, 取得, 問題, 大事, 大体, 失敗, 家宝, 意識, 数式, , 更新, 果報, 機会, 理由, 綺麗, 表示, 解決済み, 記載, 警告, 返却, 返答, , ,

YOUTUBEに特化した掲示板は予想通り失敗?しましたが

2022.03.13

Logging

YOUTUBEに特化した掲示板は予想通り失敗?しましたが作った意味はそれなりにあったのではないかと思っています。次なるサービスの為に2つ程、ドメインを取得しましたが今の所、全然手を付けていません。ひとつのドメインは1円で購入しもう一つのドメインは980円で購入したのです。

[Official Music Video] Perfume 「Flow」

ひとつのドメインは高知県の情報をまとめるサイトに、もう一つのドメインはある程度、客が付きそうなサービスを作ろうと思っています。客が付きそうなサービスから先に作ろうと思っていた矢先に自分のリアルが忙しくなり、今まで手を付けられませんでしたが徐々に休日を使用して作り込もうと思っています。

今回の2つのサービスもYOUTUBEに特化したサービスのように失敗する確率は非常に大きいと思っています。それは何もしなかったらの話です、広告宣伝やSNSで周知すればそれなりに軌道に乗せることは出来るのではないかと思っています。

ドメインは凄く大事で、長年使用されていたドメインを買い取るとそこに付いていたユーザーをそのまま取り入れることが出来るからです。今回は金銭的理由でそれをしなかったのですが、実際どれぐらいドメインに力があるか試してみたいなと思っています。

トイウコトで告知でした。

タグ

, 2, 980, SNS, youtube, こと, サービス, サイト, それ, それなり, ドメイン, ひとつ, もう一つ, リアル, 予想, , 今回, 休日, , 使用, 取得, 周知, 大事, 失敗, , 宣伝, 広告, 情報, 意味, , , 掲示, , , 特化, 矢先, 確率, , 自分, , 購入, 軌道, , 高知県,

ビリギャルチャンネルというYOUTUBEチャンネルをご存知?

2021.09.07

Logging

コロナワクチンを接種して二日目経ちました、最初は全然というほど腕も痛くなかったのですが徐々に腕が痛くなってきました。運が良いのかそれ以外の副反応もなく過ごしています。

さて、ビリギャルチャンネルというYOUTUBEチャンネルをご存知でしょうか?、あの映画にもなったビリギャルの本人とビリギャルを慶応大学へいれた塾講師がビリギャルチャンネルというYOUTUBEチャンネルを3年ぐらいまえから立ち上げて活動しているようです。

映画「ビリギャル」

偏差値最低ランクから慶応大学へ入ったって凄く夢のある話かと思います、受験って勉強の結果(答え合わせ)なので結構な確率で努力は報われると思います。なので進学するならFラン大学よりも有名な大学へ進学する方をおすすめします。

努力が報われないことが多い中、受験と資格取得は自分の努力がそのまま結果となって報われると思いますし、資格取得に関しては受験よりも報われやすいと思います(合格ラインで精査される資格)。

ビリギャルチャンネルはどちらかと言えば、本音ベースで塾講師とビリギャルこと、小林さやかさんが話されているので、見ていると勉強のヒントになるかもしれません。

これから受験勉強する方や資格取得する方は一度見てみてはどうでしょうか?

ビリギャルチャンネル公式

タグ

, youtube, おすすめ, こと, コロナ, ご存知, それ, チャンネル, ビリギャル, まえ, ライン, らん, ランク, ワクチン, , , 偏差値, 努力, 勉強, 反応, 取得, 受験, 合格, 塾講師, , 大学, 慶応大学, 接種, , 映画, 最低, 最初, 有名, 本人, 活動, 確率, 答え, , 結果, 結構, , 自分, , 資格, 進学, ,

Proofreading(校正)というリクルートが開発したAPIを使って。

2021.04.27

Logging

Proofreading(校正)というリクルートが開発したAPIを使って、今まで投稿した記事に誤字がないかを判別してもらった。因みに1000文字を超える文章は対象にならないのでワードプレスで取得した記事を900文字程度で切って判断してもらうことにしています。誤字があった場合、1を最大値として値が渡されるので、その平均値を取ればその文章の誤字率が判定できる。今回は平均値を取らず、最大値を判断材料として文章をスコア化しました。一応、判断した値をCSVで出力するプログラムをちょこちょこと制作したので参考にして頂ければ幸いです。正直なところ、ProofreadingのAPIが制度が良いのか疑わしいものがあるがAPIを取り扱うのが始めてという人は勉強になると思います?。

AI・機械学習と創る未来 – A3RT

ソースコードはこちらになります。

<?php
require "../../wp-load.php";
global $wpdb;

$proofreading = function($text=""){
	$url = "https://api.a3rt.recruit-tech.co.jp/proofreading/v2/typo";

	$params = [
		'apikey' => '取得したAPIKEY',
		'sentence'=>"$text",
		'sensitivity'=>"high"
	];
	$curl = curl_init($url);
	curl_setopt($curl, CURLOPT_POST, TRUE);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	$response = curl_exec($curl);
	curl_close($curl);
	$obj = (object)json_decode($response);
	$score = 100;
	if($obj->alerts){
		$max = 0;
		foreach($obj->alerts as $key=>$val){
			$max = $max<$val->score?$val->score:$max;
		}
		$score = 100 - ($max * 100);
	}
	return $score;
};

if($argv[0]){
	file_put_contents("blogscore.csv","");
	$query = "SELECT * FROM $wpdb->posts WHERE post_status = 'publish' and post_type = 'post'";
	$results = $wpdb->get_results( $wpdb->prepare($query));
	foreach($results as $row) {
	   $id = $row->ID;
	   $title = $row->post_title;
	   $score = $proofreading(mb_strimwidth(preg_replace("/[\r|\n]/","",strip_tags($row->post_content)),0,900,"…"));
	   $str = "'$id'".",'".$title."',"."'$score'";
	   print $str.PHP_EOL;
	   file_put_contents("blogscore.csv",mb_convert_encoding($str."\n","SJIS","UTF-8"),FILE_APPEND);
	}
}

タグ

, 1000, 900, API, CSV, lt, php, Proofreading, quot, require, wp-load, コード, こちら, こと, スコア, ソース, ところ, プレス, プログラム, もの, リクルート, ワード, , 今回, , 出力, 判別, 判定, 判断, 制作, 制度, 勉強, 参考, 取得, 場合, 対象, 平均, 投稿, 文章, 最大, 材料, 校正, 正直, 記事, 誤字, 開発,

全国各地のダム貯水率を可視化してみた。

2021.03.02

Logging

全国各地のダム貯水率を可視化してみた。以前、高知県のダムの貯水率を可視化した事を記事にしたのですが、意外にもある一部の人達に好評なので全国のダムファンのために、全国各地のダム貯水率を可視化してみましたよ。あまり好評だったら、取得してきているサーバーに負荷がかかるため、中止します。

なお、どこから取集してきているかというとダムの貯水状況 – 国土交通省からです、正直なところcsvデータ化して頂きたいなと思う人もいるのではないでしょうか?

追記 2021:この頃、ブロックされて私のHPから拾えなくなりました・・・。もしくはHTMLの構造が変わった可能性があります。

	[
		{
			"ken": "北海道道北", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0102/ipDamGaikyo_pc0102_pg1_fw0.html",
				"dam_name": ["愛別ダム", "西岡ダム", "有明ダム", "小平ダム", "岩尾内ダム", "サンルダム", "留萌ダム", "大雪ダム", "金山ダム", "忠別ダム"]
			}
		},
		{
			"ken": "北海道道東", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0103/ipDamGaikyo_pc0103_pg1_fw0.html",
				"dam_name": ["佐幌ダム", "庶路ダム", "鹿ノ子ダム", "十勝ダム", "屈足ダム", "札内川ダム", "糠平ダム", "元小屋ダム", "活込ダム", "仙美里ダム"]
			}
		},
		{
			"ken": "北海道道央", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0104/ipDamGaikyo_pc0104_pg1_fw0.html",
				"dam_name": ["美唄ダム", "栗山ダム", "徳富ダム", "当別ダム", "朝里ダム", "豊平峡ダム", "夕張シューパロダム", "滝里ダム", "漁川ダム", "定山渓ダム", "桂沢ダム", "芦別ダム"]
			}
		},
		{
			"ken": "北海道道南", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0105/ipDamGaikyo_pc0105_pg1_fw0.html",
				"dam_name": ["新中野ダム", "矢別ダム", "上ノ国ダム", "高見ダム", "様似ダム", "浦河ダム", "美利河ダム", "二風谷ダム", "厚幌ダム"]
			}
		},
		{
			"ken": "青森県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0201/ipDamGaikyo_pc0201_pg1_fw0.html",
				"dam_name": ["津軽ダム", "遠部ダム", "飯詰ダム", "浅瀬石川ダム", "久吉ダム", "相馬ダム(利水)", "世増ダム", "下湯ダム", "小泊ダム", "浅虫ダム", "清水目ダム(利水)", "川内ダム"]
			}
		},
		{
			"ken": "岩手県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0301/ipDamGaikyo_pc0301_pg1_fw0.html",
				"dam_name": ["四十四田ダム", "胆沢ダム", "早池峰ダム", "御所ダム", "綱取ダム", "入畑ダム", "湯田ダム", "遠野ダム", "遠野第二ダム", "田瀬ダム", "滝ダム", "鷹生ダム", "日向ダム", "綾里川ダム"]
			}
		},
		{
			"ken": "宮城県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0401/ipDamGaikyo_pc0401_pg1_fw0.html",
				"dam_name": ["鳴子ダム", "花山ダム", "長沼ダム", "上大沢ダム", "化女沼ダム", "小田ダム", "荒砥沢ダム", "栗駒ダム(利水)", "漆沢ダム", "宮床ダム", "南川ダム", "樽水ダム", "釜房ダム", "大倉ダム", "七ケ宿ダム", "七北田ダム", "惣の関ダム", "払川ダム"]
			}
		},
		{
			"ken": "秋田県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0501/ipDamGaikyo_pc0501_pg1_fw0.html",
				"dam_name": ["早口ダム", "山瀬ダム", "素波里ダム", "萩形ダム", "森吉ダム", "森吉山ダム", "砂子沢ダム", "旭川ダム", "鎧畑ダム", "玉川ダム", "皆瀬ダム", "板戸ダム", "岩見ダム", "大松川ダム", "協和ダム", "大内ダム"]
			}
		},
		{
			"ken": "山形県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0601/ipDamGaikyo_pc0601_pg1_fw0.html",
				"dam_name": ["長井ダム", "高坂ダム", "白水川ダム", "寒河江ダム", "木地山ダム", "田沢川ダム", "最上小国川流水型ダム", "留山川ダム", "蔵王ダム", "前川ダム", "神室ダム", "綱木川ダム", "白川ダム", "荒沢ダム", "月山ダム", "月光川ダム", "温海川ダム", "横川ダム"]
			}
		},
		{
			"ken": "福島県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0701/ipDamGaikyo_pc0701_pg1_fw0.html",
				"dam_name": ["摺上川ダム", "三春ダム", "堀川ダム", "真野ダム", "木戸ダム", "小玉ダム", "こまちダム", "高柴ダム", "四時ダム", "大川ダム", "新郷ダム(利水・東北電力)", "山郷ダム(利水・東北電力)", "上野尻ダム(利水・東北電力)", "片門ダム(利水・東北電力)", "奥只見ダム(利水・電源開発)", "田子倉ダム(利水・電源開発)", "本名ダム(利水・東北電力)", "滝ダム(利水・電源開発)", "大鳥ダム(利水・電源開発)", "上田ダム(利水・東北電力)", "宮下ダム(利水・東北電力)", "柳津ダム(利水・東北電力)", "只見ダム(電源開発)", "日中ダム", "東山ダム", "田島ダム"]
			}
		},
		{
			"ken": "栃木県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/0901/ipDamGaikyo_pc0901_pg1_fw0.html",
				"dam_name": ["塩原ダム", "寺山ダム", "西荒川ダム", "東荒川ダム", "川俣ダム", "川治ダム", "三河沢ダム", "中禅寺ダム", "五十里ダム", "湯西川ダム", "松田川ダム"]
			}
		},
		{
			"ken": "群馬県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1001/ipDamGaikyo_pc1001_pg1_fw0.html",
				"dam_name": ["四万川ダム", "矢木沢ダム", "藤原ダム", "草木ダム", "八ッ場ダム", "薗原ダム", "相俣ダム", "奈良俣ダム", "桐生川ダム", "塩沢ダム", "道平川ダム", "大仁田ダム", "坂本ダム", "霧積ダム"]
			}
		},
		{
			"ken": "埼玉県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1101/ipDamGaikyo_pc1101_pg1_fw0.html",
				"dam_name": ["渡良瀬遊水地", "下久保ダム", "二瀬ダム", "荒川第一調節池", "浦山ダム", "滝沢ダム", "有間ダム", "合角ダム"]
			}
		},
		{
			"ken": "千葉県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1201/ipDamGaikyo_pc1201_pg1_fw0.html",
				"dam_name": ["亀山ダム", "片倉ダム", "高滝ダム", "矢那川ダム"]
			}
		},
		{
			"ken": "神奈川県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1401/ipDamGaikyo_pc1401_pg1_fw0.html",
				"dam_name": ["城山ダム", "宮ヶ瀬ダム", "宮ヶ瀬副ダム", "三保ダム"]
			}
		},
		{
			"ken": "新潟県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1501/ipDamGaikyo_pc1501_pg1_fw0.html",
				"dam_name": ["大石ダム", "揚川ダム(利水・東北電力)", "豊実ダム(利水・東北電力)", "鹿瀬ダム(利水・東北電力)", "早出川ダム", "下条川ダム", "刈谷田川ダム", "笠堀ダム", "城川ダム", "破間川ダム", "広神ダム", "三国川ダム", "正善寺ダム", "三面ダム", "奥三面ダム", "胎内川ダム", "奥胎内ダム", "内の倉ダム", "加治川治水ダム", "鯖石川ダム", "久知川ダム", "新保川ダム", "大野川ダム", "柿崎川ダム", "大谷ダム"]
			}
		},
		{
			"ken": "富山県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1601/ipDamGaikyo_pc1601_pg1_fw0.html",
				"dam_name": ["宇奈月ダム", "室牧ダム", "熊野川ダム", "久婦須川ダム", "和田川ダム", "利賀川ダム", "境川ダム", "刀利ダム", "子撫川ダム", "城端ダム", "臼中ダム", "朝日小川ダム", "角川ダム", "上市川ダム", "上市川第2ダム", "白岩川ダム", "舟川ダム", "布施川ダム", "大谷ダム"]
			}
		},
		{
			"ken": "石川県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1701/ipDamGaikyo_pc1701_pg1_fw0.html",
				"dam_name": ["手取川ダム", "赤瀬ダム", "犀川ダム", "辰巳ダム", "内川ダム", "新内川ダム", "我谷ダム", "九谷ダム", "小屋ダム", "八ヶ川ダム"]
			}
		},
		{
			"ken": "長野県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2001/ipDamGaikyo_pc2001_pg1_fw0.html",
				"dam_name": ["浅川ダム", "大町ダム", "松川ダム", "片桐ダム", "小渋ダム", "美和ダム", "高遠ダム", "横川ダム", "味噌川ダム", "牧尾ダム(利水)"]
			}
		},
		{
			"ken": "岐阜県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2101/ipDamGaikyo_pc2101_pg1_fw0.html",
				"dam_name": ["丹生川ダム", "御母衣ダム(利水)", "小里川ダム", "丸山ダム", "中野方ダム", "阿木川ダム", "岩屋ダム", "大ヶ洞ダム", "横山ダム", "徳山ダム", "阿多岐ダム", "岩村ダム", "打上ダム(利水)"]
			}
		},
		{
			"ken": "静岡県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2201/ipDamGaikyo_pc2201_pg1_fw0.html",
				"dam_name": ["長島ダム", "佐久間ダム", "秋葉ダム", "船明ダム", "太田川ダム", "奥野ダム", "青野大師ダム"]
			}
		},
		{
			"ken": "愛知県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2301/ipDamGaikyo_pc2301_pg1_fw0.html",
				"dam_name": ["新豊根ダム", "宇連ダム", "矢作ダム", "木曽川大堰(利水)"]
			}
		},
		{
			"ken": "三重県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2401/ipDamGaikyo_pc2401_pg1_fw0.html",
				"dam_name": ["君ヶ野ダム", "蓮ダム", "宮川ダム", "三瀬谷ダム(発電)", "安濃ダム(利水)", "比奈知ダム(機構)", "滝川ダム", "青蓮寺ダム(機構)", "小森ダム(電発)"]
			}
		},
		{
			"ken": "福井県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/1801/ipDamGaikyo_pc1801_pg1_fw0.html",
				"dam_name": ["九頭竜ダム", "龍ヶ鼻ダム", "広野ダム", "二ツ屋分水堰", "永平寺ダム", "浄土寺川ダム", "浄土寺川ダム(貯砂ダム)", "笹生川ダム", "真名川ダム", "雲川ダム(利水)", "桝谷ダム", "河内川ダム", "大津呂ダム"]
			}
		},
		{
			"ken": "滋賀県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2501/ipDamGaikyo_pc2501_pg1_fw0.html",
				"dam_name": ["青土ダム", "日野川ダム", "永源寺ダム(利水)", "宇曽川ダム", "姉川ダム", "余呉湖", "石田川ダム", "天川ダム"]
			}
		},
		{
			"ken": "京都府", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2601/ipDamGaikyo_pc2601_pg1_fw0.html",
				"dam_name": ["和知ダム(利水)", "大野ダム", "日吉ダム(機構)", "天ヶ瀬ダム", "高山ダム(機構)", "畑川ダム"]
			}
		},
		{
			"ken": "大阪府", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2701/ipDamGaikyo_pc2701_pg1_fw0.html",
				"dam_name": ["箕面川ダム", "狭山池ダム", "滝畑ダム(利水)"]
			}
		},
		{
			"ken": "兵庫県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2801/ipDamGaikyo_pc2801_pg1_fw0.html",
				"dam_name": ["三宝ダム", "栗柄ダム", "一庫ダム(機構)", "大路ダム", "与布土ダム", "但東ダム", "権現ダム", "平荘ダム", "川代ダム", "大川瀬ダム", "呑吐ダム", "糀屋ダム", "みくまりダム", "安富ダム", "引原ダム", "青野ダム", "生野ダム", "菅生ダム", "安室ダム", "金出地ダム", "長谷ダム", "石井ダム", "天王ダム", "大日ダム", "分水堰", "牛内ダム", "成相ダム", "北富士ダム", "諭鶴羽ダム"]
			}
		},
		{
			"ken": "奈良県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/2901/ipDamGaikyo_pc2901_pg1_fw0.html",
				"dam_name": ["布目ダム(機構)", "室生ダム(機構)", "初瀬ダム", "大門ダム", "天理ダム", "白川ダム", "岩井川ダム", "大滝ダム", "猿谷ダム(利水)", "九尾ダム(利水)", "川迫ダム(利水)", "二津野ダム(電発)", "風屋ダム(電発)", "池原ダム(電発)", "坂本ダム(電発)"]
			}
		},
		{
			"ken": "和歌山県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3001/ipDamGaikyo_pc3001_pg1_fw0.html",
				"dam_name": ["七色ダム(電発)", "二川ダム", "椿山ダム", "七川ダム", "広川ダム", "切目川ダム"]
			}
		},
		{
			"ken": "鳥取県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3101/ipDamGaikyo_pc3101_pg1_fw0.html",
				"dam_name": ["殿ダム", "賀祥ダム", "菅沢ダム"]
			}
		},
		{
			"ken": "島根県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3201/ipDamGaikyo_pc3201_pg1_fw0.html",
				"dam_name": ["尾原ダム", "布部ダム", "山佐ダム", "志津見ダム", "八戸ダム", "大長見ダム", "御部ダム", "三瓶ダム", "浜田ダム", "第二浜田ダム", "益田川ダム", "嵯峨谷ダム", "笹倉ダム", "大峠ダム", "銚子ダム", "美田ダム", "清瀧ダム", "津田川ダム"]
			}
		},
		{
			"ken": "岡山県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3301/ipDamGaikyo_pc3301_pg1_fw0.html",
				"dam_name": ["苫田ダム", "八塔寺川ダム", "津川ダム", "旭川ダム", "湯原ダム", "竹谷ダム", "河平ダム", "鳴滝ダム", "河本ダム", "千屋ダム", "新成羽川ダム", "黒鳥ダム", "三室川ダム", "高瀬川ダム", "楢井ダム"]
			}
		},
		{
			"ken": "広島県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3401/ipDamGaikyo_pc3401_pg1_fw0.html",
				"dam_name": ["土師ダム", "灰塚ダム", "庄原ダム", "三川ダム", "八田原ダム", "野間川ダム", "四川ダム", "御調ダム", "山田川ダム", "温井ダム", "小瀬川ダム", "弥栄ダム", "福富ダム", "椋梨ダム", "魚切ダム", "梶毛ダム", "野呂川ダム", "仁賀ダム"]
			}
		},
		{
			"ken": "山口県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3501/ipDamGaikyo_pc3501_pg1_fw0.html",
				"dam_name": ["小瀬川ダム", "佐波川ダム", "島地川ダム", "阿武川ダム", "菅野ダム", "向道ダム", "御庄川ダム", "生見川ダム", "中山川ダム", "荒谷ダム", "一の坂ダム", "厚東川ダム", "木屋川ダム", "湯免ダム", "黒杭川ダム", "川上ダム", "末武川ダム", "今富ダム", "大坊ダム", "見島ダム", "屋代ダム", "真締川ダム"]
			}
		},
		{
			"ken": "徳島県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3601/ipDamGaikyo_pc3601_pg1_fw0.html",
				"dam_name": ["池田ダム(機構)", "宮川内ダム", "川口ダム(利水)", "長安口ダム", "正木ダム", "福井ダム"]
			}
		},
		{
			"ken": "香川県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3701/ipDamGaikyo_pc3701_pg1_fw0.html",
				"dam_name": ["内場ダム", "五名ダム", "大川ダム", "前山ダム", "長柄ダム", "府中ダム(利水)", "吉田ダム", "門入ダム", "五郷ダム", "粟井ダム", "粟地ダム", "殿川ダム", "千足ダム", "大内ダム", "田万ダム", "内海ダム"]
			}
		},
		{
			"ken": "愛媛県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3801/ipDamGaikyo_pc3801_pg1_fw0.html",
				"dam_name": ["柳瀬ダム", "新宮ダム(機構)", "富郷ダム(機構)", "銅山川ダム群", "石手川ダム", "野村ダム", "鹿野川ダム", "黒瀬ダム", "鹿森ダム", "玉川ダム", "台ダム", "須賀川ダム", "山財ダム"]
			}
		},
		{
			"ken": "高知県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/3901/ipDamGaikyo_pc3901_pg1_fw0.html",
				"dam_name": ["早明浦ダム(機構)", "永瀬ダム", "大渡ダム", "桐見ダム", "中筋川ダム", "横瀬川ダム", "鏡ダム", "坂本ダム", "鎌井谷ダム", "以布利川ダム"]
			}
		},
		{
			"ken": "福岡県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/4001/ipDamGaikyo_pc4001_pg1_fw0.html",
				"dam_name": ["犬鳴ダム", "力丸ダム", "福智山ダム", "陣屋ダム", "藤波ダム", "江川ダム", "小石原川ダム", "山神ダム", "寺内ダム", "日向神ダム", "油木ダム", "北谷ダム", "ます渕ダム", "鳴淵ダム", "南畑ダム", "瑞梅寺ダム", "猪野ダム", "牛頸ダム"]
			}
		},
		{
			"ken": "佐賀県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/4101/ipDamGaikyo_pc4101_pg1_fw0.html",
				"dam_name": ["平木場ダム", "厳木ダム", "本部ダム", "狩立・日ノ峯ダム", "伊岐佐ダム", "井手口ダム", "矢筈ダム", "嘉瀬川ダム", "都川内ダム", "有田ダム", "竜門ダム", "深浦ダム", "岩屋川内ダム", "横竹ダム", "中木庭ダム"]
			}
		},
		{
			"ken": "熊本県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/4301/ipDamGaikyo_pc4301_pg1_fw0.html",
				"dam_name": ["下筌ダム", "竜門ダム", "緑川ダム", "市房ダム", "石打ダム", "氷川ダム", "上津浦ダム", "亀川ダム", "路木ダム"]
			}
		},
		{
			"ken": "大分県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/4401/ipDamGaikyo_pc4401_pg1_fw0.html",
				"dam_name": ["耶馬溪ダム", "松原ダム", "大山ダム", "ななせダム", "野津ダム", "稲葉ダム", "黒沢ダム", "床木ダム", "安岐ダム", "行入ダム", "青江ダム"]
			}
		},
		{
			"ken": "宮崎県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/4501/ipDamGaikyo_pc4501_pg1_fw0.html",
				"dam_name": ["祝子ダム", "松尾ダム", "渡川ダム", "綾南ダム", "瓜田ダム", "岩瀬ダム", "綾北ダム", "田代八重ダム", "立花ダム", "長谷(補助)ダム", "広渡ダム", "日南ダム", "沖田ダム"]
			}
		},
		{
			"ken": "鹿児島県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/4601/ipDamGaikyo_pc4601_pg1_fw0.html",
				"dam_name": ["鶴田ダム", "川辺ダム", "西之谷ダム", "大和ダム"]
			}
		},
		{
			"ken": "沖縄県", "Children": {
				"url": "https://www.river.go.jp/kawabou/html/list/7/4701/ipDamGaikyo_pc4701_pg1_fw0.html",
				"dam_name": ["福地ダム", "新川ダム", "安波ダム", "普久川ダム", "辺野喜ダム", "漢那ダム", "羽地ダム", "倉敷ダム", "金武ダム", "座間味ダム", "金城ダム", "我喜屋ダム", "大保ダム", "儀間ダム"]
			}
		}
	]

タグ

2021, Children, CSV, go, HP, html, https, jp, kawabou, ken, lis, quot, river, url, www, サーバー, ダム, ため, データ, どこ, ところ, ファン, ブロック, 一部, 中止, , , 以前, 全国, 北海道, , 取得, 可能性, 可視, 各地, 国土交通省, 好評, 構造, 正直, 状況, , 記事, 負荷, 貯水, 追記, 道北, , 高知県,

さくらサーバと別会社のサーバを使う場合。

2020.10.21

Logging

さくらサーバでメインドメインを使って、サブドメインを別サーバと紐付けて使用する場合は、ネームサーバで設定せずにAレコードで設定するに限る。この話はドメインをお名前.comなどのドメイン販売をメインで取り扱っている会社の話になると思います。レンタルサーバーでドメイン取得してサブドメインを別サーバで使用する場合もおなじですが、WEBの制作会社などは大体、ドメインをメインとして発売されている会社で取得して、サーバは別会社で取り扱っていることがセオリーなのかなぁ・・・。

何故ってサーバを別会社に移行する場合、サーバとドメインを同じところで取得しているとサーバ移行時に、無駄なお金が発生するからです。ドメインを移管しようものなら、高額なドメイン移管代を支払うハメになったり、サーバ移行したけどドメインはサーバのまま保持しないといけなくなったりして、新サーバ代と旧サーバ代の両方を毎月支払うハメになったりとサーバを移行するのに無駄なお金が発生するので、ドメインとサーバは別々にしていることが多いです。

話を戻して別会社のサーバを扱いたい場合はAレコードで設定してvalueにそれぞれのサーバのIP情報を入力すると良いです。さくらサーバのサーバIP情報はコントロールパネルのサーバ情報に記載されています。その情報をAレコードに入力してあげれば良いです?

タグ

com, web, お金, こと, サーバ, サーバー, さくら, サブ, セオリー, ところ, ドメイン, ネーム, はめ, まま, メイン, もの, レコード, レンタル, 両方, 会社, 何故, 使用, 保持, 別会社, 制作, 取得, 名前, 場合, 大体, 無駄, 発売, 発生, 移管, 移行, , 設定, , 販売, 高額,

Fox-Black.comというサイトを開設。

2020.09.29

Logging

Fox-Black.comというサイトを開設。本当はblack-fox.comが良かったのだけどPlayStationのアカウント(blackfox)が取られていてfoxblackにしてPlayStationのアカウントを取得。そのいうことでサイトも設置したいなと思いサイトを開設。
最初はfc2の無料サイトでサイトを開設していたのだけど、やっぱ独自のドメインで構築したくなったので、ドメインを取得。

そしてサイトを構築しました。まだ何もないのだけど、なんかやっていきたいなとGame logページまで作りましたが、たぶんゲームはあまりしないのでログとして残らないだろうから、何か違うものに変わっていくと思います。

ちなみにドメインはfox-black.comというドメインです、実は静的ページに見えてWPで出来ているですよ。昨日突貫工事でサイトを構築しました。ワードプレスだけどサイドバーという概念は除けてます。

明日、WPの超シンプルなコードを公開します。

タグ

2, black-fox, blackfox, com, fc, Fox-Black, FoxBlack, Game, log, PlayStation, wp, アカウント, ゲーム, こと, サイト, ドメイン, バー, プレス, ページ, もの, ログ, ワード, 取得, 工事, 明日, 昨日, 最初, 本当, 概念, 構築, 無料, 突貫, 設置, 開設,

ECサイトのBASEショップを独自ドメインに!

2020.09.21

Logging

ECサイトのBASEショップを独自ドメインにする方法を書いていきます。まずはお名前ドットコムでドメインを取得します。下記の動画で解説していますのでそちらを参照ください。もし動画のリンクが切れていた場合、YOUTUBEで『お名前.com ドメイン取得』などとググってみてください。ドメインの購入方法が説明されている動画があると思います。

お名前.comのドメイン取得方法【Whois情報公開代行に注意】

次にドメインが所得したあと、DNSの設定よりサブドメイン、『wwwか任意の名(shopなど)』ドメインのサーバ住所(在処)をBASEショップのサーバ住所に変更しなくてはならない為、ブルダウンメニューからCNAMEレコードを選択し『cname.thebase.in』と入力する必要があります。また左端の入力部分にはサブドメイン名を入力してください。

下記の画像を参照してください、手順を参考にしてサブドメインとCNAMEの値を設定し設定ボタンを押してください。(設定する値はwwwか任意のサブドメイン名となり、CNAMEの値はcname.thebase.inになります。)

最後にBASEサイトにログインし上記で設定したサブドメイン(wwwか任意の名(shopなど))を下記の動画を見本に申請してみてください。申請後、数時間で独自ドメインがECサイトで表示されている事が確認できると思います。

ECサイトbaseを独自ドメインに!

タグ

base, CNAME, com, DNS, EC, in, shop, thebase, www, youtube, あと, サーバ, サイト, サブ, サブド, ショップ, そちら, ダウン, ドットコム, ドメイン, ドメイン名, プル, ボタン, メニュー, リンク, レコード, 下記, 任意, 住所, , 入力, 動画, 参照, 参考, 取得, , 名前, 在処, 場合, 変更, 左端, 必要, 所得, 手順, 方法, , 画像, 解説, 設定, 説明, 購入, 選択, 部分,

Yahoo!ニュースをPythonで取得するできました(´・ω・`)v

2020.05.01

Logging

早朝、YOUTUBEライブ配信で行ったものはタイトルとリンクが若干異なるところがあったので、修正したソースコードを貼っときます。Python言語少しずつ 少しずつ理解できてきた。

書き方が慣れればPHPより書くのは楽かな。$の記号がPHPの変数を書く場合、絶対必要になるけどPythonは書かなくて良いからね。

import requests
from bs4 import BeautifulSoup
r = requests.get("https://news.yahoo.co.jp/")
soup = BeautifulSoup(r.content, "html.parser")
#ニュース一覧のテキストのみ抽出
f = open("link.csv",mode = "a")
for t,a in zip(soup.find_all("div", "newsFeed_item_title"),soup.find_all("a", "newsFeed_item_link")):
    f.write(t.text + "," + a.get('href') + "\n")
f.close()

タグ

4, BeautifulSoup, bs, co, content, CSV, find, For, from, GET, html, https, import, in, jp, link, mode, News, open, parser, php, Python, quot, requests, soup, , Yahoo, youtube, zip, コード, ソース, タイトル, テキスト, ところ, ニュース, もの, ライブ, リンク, 一覧, 修正, 取得, 場合, 変数, 必要, 抽出, 早朝, 書き方, 理解, 若干, 言語, 記号, 配信,

高知県のダム貯水率グラフ化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, グラフ, コード, ダム, データ, ひとは, プログラム, , , 取得, 変更, 少数, 形式, 掲載, , , 自身, 解析, 貯水, 高知県,

ブラウザのプッシュ通知が簡単にできちゃうFirebase

2020.03.20

Logging

ブラウザのプッシュ通知が簡単にできちゃうFirebaseのでやり方を簡略的に記載します。

  1. Firebaseにプロジェクトを作成する(グーグルのアカウントが必要)。
  2. firebase cliというパッケージソフトをOSにダウンロードしそのソフトを任意のフォルダの中に移動させて起動させる。Node.jsはインストール済みとする(※手順)。
  3. 試しにホスティングしてみる。ホスティングはプロジェクトの左側の項目よりホスティングをクリックすると手順の説明通り行うと出来ます。
  4. URLより確認し表示されているか確認する。
  5. Cloud Messagingの設定よりFCM でウェブ認証情報を設定するからメッセージング オブジェクトを取得するまでをブラウザで操作し設定を行う。
  6. ローカルに下記のURLよりファイルをダウンロードする。ダウンロードするファイルはfirebase-messaging-sw.js, firebase-logo.png, index.html, main.cssになります。動かない場合は再設定が必要。
    https://github.com/firebase/quickstart-js/tree/f76b14ca00cca48dbfca5c787c0a4ca73eb9857d/messaging
  7. ダウンロードしたファイルはpublicか自分が決めたフォルダに入れる。
  8. index.htmlソースの中に ‘<YOUR_PUBLIC_VAPID_KEY_HERE>’ と記載している部分があるので変更する。
  9. firebase cli より『 firebase deploy』する。
  10. ページを再読み込みして通知を許可する。
  11. Cloud Messagingから送信してみる。
  12. 通知が届くことを確認する。
    ※今回はブラウザのプッシュ通知なのでアプリを追加する際はWEB(</>)を選んでください。
Introducing Firebase Cloud Messaging

ではでは?健闘を祈る?

タグ

cli, Cloud, FCM, Firebase, firebase-logo, firebase-messaging-sw, index, JS, Messaging, node, OS, png, url, アカウント, インストール, ウェブ, オブジェクト, グーグル, クリック, ソフト, ダウンロード, パッケージ, ファイル, フォルダ, プッシュ, ブラウザ, プロジェクト, ホスティング, メッセージング, やり方, ローカル, 下記, , 任意, 作成, 取得, 左側, 必要, 情報, 手順, 操作, 確認, 移動, 簡単, 簡略, 表示, 記載, 設定, 認証, 説明, 起動, 通知, 項目,

天気予報を取得するアレを使用してみた(Openweathermap_api)。

2020.02.19

Logging

ご自由にお使いください。尚、openweathermap.orgより
アカウントを作成後、APIKEYを取得しお使いください。
下記のソースコードをコピーしての可変等は可能です。

余談

天気予報の絵文字が合致していていないかもしれません。
また都道府県のIDもズレている場合、お好みで変更ください。
ZIPコードで情報を取得するとより正確な天気予報となるそうです。

下記のコードを実行するとこんな感じになります。

ソースコードはこんな感じになります。

<?php
class Openweathermap_api{
    public $url = "https://api.openweathermap.org/data/2.5/weather?id=";
    public $appid = "apikey";
    public $ken ="";
    public $response ="";
    public $icon = array(
        "01d"=>"?",
        "02d"=>"?",
        "03d"=>"?",
        "04d"=>"?",//?
        "09d"=>"?",
        "010d"=>"?",
        "011d"=>"?",
        "013d"=>"?",
        "050d"=>"?",
    );
    function __construct()
    {
        $this->ken = (object)(json_decode(@file_get_contents("ken.json"),true));
    }
    function api(){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $this->response =  (object)json_decode(curl_exec($ch),true);
        curl_close($ch);
    }
}
$tenki = New Openweathermap_api();
$tenki->url = "https://api.openweathermap.org/data/2.5/weather?id=".$tenki->ken->kochi["id"]."&appid=".$tenki->appid;
$tenki->api();
print($tenki->icon[str_replace("n","d",$tenki->response->weather[0]["icon"])]);
var_dump($tenki->response);
{
    "hokkaido": {
        "id": "2130037",
        "kenmei": "北海道",
        "kenfurigana": "ほっかいどう"
    },
    "aomori": {
        "id": "2130656",
        "kenmei": "青森県",
        "kenfurigana": "あおもり"
    },
    "iwate": {
        "id": "2112518",
        "kenmei": "岩手県",
        "kenfurigana": "いわて"
    },
    "miyagi": {
        "id": "2111888",
        "kenmei": "宮城県",
        "kenfurigana": "みやぎ"
    },
    "akita": {
        "id": "2113124",
        "kenmei": "秋田県",
        "kenfurigana": "あきた"
    },
    "yamagata": {
        "id": "2110554",
        "kenmei": "山形県",
        "kenfurigana": "やまがた"
    },
    "fukushima": {
        "id": "2112923",
        "kenmei": "福島県",
        "kenfurigana": "ふくしま"
    },
    "ibaraki": {
        "id": "2112669",
        "kenmei": "茨城県",
        "kenfurigana": "いばらき"
    },
    "tochigi": {
        "id": "1850310",
        "kenmei": "栃木県",
        "kenfurigana": "とちぎ"
    },
    "gunma": {
        "id": "1863501",
        "kenmei": "群馬県",
        "kenfurigana": "ぐんま"
    },
    "saitama": {
        "id": "1853226",
        "kenmei": "埼玉県",
        "kenfurigana": "さいたま"
    },
    "chiba": {
        "id": "2113014",
        "kenmei": "千葉県",
        "kenfurigana": "ちば"
    },
    "tokyo": {
        "id": "1850144",
        "kenmei": "東京都",
        "kenfurigana": "とうきょう"
    },
    "kanagawa": {
        "id": "1860291",
        "kenmei": "神奈川県",
        "kenfurigana": "かながわ"
    },
    "niigata": {
        "id": "1855429",
        "kenmei": "新潟県",
        "kenfurigana": "にいがた"
    },
    "toyama": {
        "id": "1849872",
        "kenmei": "富山県",
        "kenfurigana": "とやま"
    },
    "ishikawa": {
        "id": "1861387",
        "kenmei": "石川県",
        "kenfurigana": "いしかわ"
    },
    "fukui": {
        "id": "1863983",
        "kenmei": "福井県",
        "kenfurigana": "ふくい"
    },
    "yamanashi": {
        "id": "1848649",
        "kenmei": "山梨県",
        "kenfurigana": "やまなし"
    },
    "nagano": {
        "id": "1856210",
        "kenmei": "長野県",
        "kenfurigana": "ながの"
    },
    "gifu": {
        "id": "1863640",
        "kenmei": "岐阜県",
        "kenfurigana": "ぎふ"
    },
    "shizuoka": {
        "id": "1851715",
        "kenmei": "静岡県",
        "kenfurigana": "しずおか"
    },
    "aichi": {
        "id": "1865694",
        "kenmei": "愛知県",
        "kenfurigana": "あいち"
    },
    "mie": {
        "id": "1857352",
        "kenmei": "三重県",
        "kenfurigana": "みえ"
    },
    "shiga": {
        "id": "1852553",
        "kenmei": "滋賀県",
        "kenfurigana": "しが"
    },
    "kyoto": {
        "id": "1857907",
        "kenmei": "京都府",
        "kenfurigana": "きょうと"
    },
    "osaka": {
        "id": "1853909",
        "kenmei": "大阪府",
        "kenfurigana": "おおさか"
    },
    "hyogo": {
        "id": "1862047",
        "kenmei": "兵庫県",
        "kenfurigana": "ひょうご"
    },
    "nara": {
        "id": "1855608",
        "kenmei": "奈良県",
        "kenfurigana": "なら"
    },
    "wakayama": {
        "id": "1848938",
        "kenmei": "和歌山県",
        "kenfurigana": "わかやま"
    },
    "tottori": {
        "id": "1849890",
        "kenmei": "鳥取県",
        "kenfurigana": "とっとり"
    },
    "shimane": {
        "id": "1852442",
        "kenmei": "島根県",
        "kenfurigana": "しまね"
    },
    "okayama": {
        "id": "1854381",
        "kenmei": "岡山県",
        "kenfurigana": "おかやま"
    },
    "hiroshima": {
        "id": "1862413",
        "kenmei": "広島県",
        "kenfurigana": "ひろしま"
    },
    "yamaguchi": {
        "id": "1848681",
        "kenmei": "山口県",
        "kenfurigana": "やまぐち"
    },
    "tokushima": {
        "id": "1850157",
        "kenmei": "徳島県",
        "kenfurigana": "とくしま"
    },
    "kagawa": {
        "id": "1860834",
        "kenmei": "香川県",
        "kenfurigana": "かがわ"
    },
    "ehime": {
        "id": "1864226",
        "kenmei": "愛媛県",
        "kenfurigana": "えひめ"
    },
    "kochi": {
        "id": "1859133",
        "kenmei": "高知県",
        "kenfurigana": "こうち"
    },
    "fukuoka": {
        "id": "1863958",
        "kenmei": "福岡県",
        "kenfurigana": "ふくおか"
    },
    "saga": {
        "id": "1853303",
        "kenmei": "佐賀県",
        "kenfurigana": "さが"
    },
    "nagasaki": {
        "id": "1856156",
        "kenmei": "長崎県",
        "kenfurigana": "ながさき"
    },
    "kumamoto": {
        "id": "1858419",
        "kenmei": "熊本県",
        "kenfurigana": "くまもと"
    },
    "oita": {
        "id": "1854484",
        "kenmei": "大分県",
        "kenfurigana": "おおいた"
    },
    "miyazaki": {
        "id": "1856710",
        "kenmei": "宮崎県",
        "kenfurigana": "みやざき"
    },
    "kagoshima": {
        "id": "1860825",
        "kenmei": "鹿児島県",
        "kenfurigana": "かごしま"
    },
    "okinawa": {
        "id": "1854345",
        "kenmei": "沖縄県",
        "kenfurigana": "おきなわ"
    }
}

タグ

2.5, API, APIKEY, appid, class, data, ID, lt, Openweathermap, org, php, pub, public, quot, url, weather, zip, アカウント, アレ, お好み, コード, コピー, ご自由, ズレ, ソース, 下記, 予報, 余談, 作成, 使用, 取得, 可能, 合致, 場合, 変更, 天気, 実行, 情報, 感じ, 正確, 絵文字, 都道府県,

プログラムの基礎しか書かないわけ。

2019.11.27

Logging

何故、自分のブログには基本的なプログラミングしかなく複雑なプログラムが存在しないわけはこちらです。

基本的な文法から複雑なプログラムが生まれるので基本的な部分がわかれば大体の人は応用できるだろうと
考えているからです。

自分の場合、勉強と経験からコードを組み立てています。人から教わらないけれど、ググると無数のコードと
解説が存在します。そんな先人が残したコードを読み取り習得するという形と参考書から情報を得たりして経験値を
積んでいます。

職場でプログラムを教わったことは今までほぼほぼ無いです。本当はOJTがあって然るべきだと思いますが中小企業に入るとそんなに甘くはないですね。

今の人はYOUTUBEなどでも無料でプログラミングの知識を取得することも可能です、そこらへんが少し羨ましいです。

ちなみに自分は教えられていないので後輩には自分が知っていることは教えるということを現場では心がけていました。知識って共有して向上するのですがブラック企業は技術を教えない技術は盗み取るものだという考え方が未だに根強いです。

タグ

OJT, youtube, コード, こちら, こと, そこら, , ブログ, プログラミング, プログラム, べん, わけ, 中小企業, , , 何故, 先人, 共有, 勉強, 参考書, 取得, 可能, 向上, 基礎, 場合, 大体, 存在, 少し, , 後輩, 応用, 情報, 文法, 本当, 無数, 無料, 現場, 知識, 経験, 習得, 職場, 自分, 複雑, 解説, 部分,

googleスプレッドシートの値を取得することは可能ですが!

2019.11.24

Logging

googleスプレッドシートの値を取得することは可能ですが動的な値を取得することは不可能です。
動的処理というのはスプレッドシートの関数などで値を表示している情報をPHPなどで外部取得することは不可能です。

【Google神関数】生産性が100倍上がる!スプレッドシート4つの便利関数はこれ!

※方法があるようでしたら、教えて頂ければありがたいです。

なお、PHPからスプレッドシートの値などは変更可能です。
今回は値の取得に関しての方法を記載しております。

手順
1.グーグルさんからグーグルスプレッドシートのAPIKEYを取得する。
2. グーグルスプレッドシートを作成しスプレッドシートのID部分を取得する。
3.サーバ上にComposerをインストールし、下記のコマンドを実行する。

composer require google/apiclient:"^2.0"

下記のソースのAPIキー、スプレッドシートIDの部分を取得した値に置き換える。

<?php
require_once __DIR__ . '/vendor/autoload.php';
//$keyFile = __DIR__. "/credentials.json";
define("APIKEY","APIキー");
define("SPID","スプレッドシートID");
$spreadsheetId = SPID;
$range ="Sheet1!A1:B123";
$client = new Google_Client();
$client->setApplicationName("Spreadsheet");
$client->setDeveloperKey(APIKEY);
$scopes = [Google_Service_Sheets::SPREADSHEETS];
$client->setScopes($scopes);
$service = new Google_Service_Sheets($client);
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
// TODO: Change code below to process the `response` object:
echo '<pre>', var_export($response->getValues()), '</pre>', "n";

結構ハシオッタ説明になりますが、こちらでGoogleスプレッドシートの値を取得または操作が可能となります。

タグ

, 2, 2.0, , 4, 5, A`, apiclient, APIKEY, com, Composer, et, fCs, Google, https, ID, php, quot, require, watch, www, youtube, インストール, グーグル, こと, コマンド, サーバ, シート, スプレッド, ソース, 下記, 不可能, 今回, 作成, , 処理, 取得, 可能, 変更, 外部, 実行, 情報, 手順, 方法, 表示, 記載, 部分, 関数,

ちょっとした物。InstagramのAPI取得する

2019.10.05

Logging

Instagram(インスタグラム)の画像などが取得することが出来ます。アクセストークンの取得の方法がわからない場合はぐぐってください。尚、APIのバージョンが、今後上がった場合は下記のコードは使用できなくなる可能性があります。ちなみにこのコード動作確認はしておりません。このコードを理解して使用できる人のみお使いください。
尚、画像取得数はデフォルト10にしています。プログラムではアクセストークンと20を渡しています。
画像URLはコメントアウトのところに入ってきます。※プログラムを可変してお使いください。

<?php
//Instagram
//https://api.instagram.com/v1/users/self/media/recent/?access_token=&count=
class instagram_api{
    public const url ="https://api.instagram.com/v1/users/self/media/recent/?access_token=";
    public function api ($access_token= "",$img_count =10){
        $url = self::url;
        return (object)json_decode(@file_get_contents($url . $access_token."&count=".$img_count));
    }
    public function obj_img($obj=Null){
        if(!is_object($obj))return false;
        if(!$obj->data)return false;
        foreach ($obj->data as $key => $item) {
            var_dump($item);
            // $item->images->standard_resolution->url
            // $item->images->low_resolution->url
        }
        return true;
    }
}
$obj = instagram_api::api("access_token",20);
instagram_api::obj_img($obj);

タグ

, 10, 20, access, API, class, com, const, count, https, instagr, Instagram, lt, media', php, public, quot, recent, self, token, url, users, アウト, アクセス, インスタグラム, コード, こと, コメント, デフォルト, トークン, ところ, バージョン, プログラム, 下記, , 今後, 使用, 動作, 取得, 可能性, 場合, 方法, , 理解, 画像, 確認,

ajaxはクロスドメインを許していないのでこうするしかない?わけではないけれど(提供会社による)

2019.05.11

Logging

ライブドアが提供している天気予報APIをJSだけで
なんとか出来ないかと思ったので試してみたけれど無理でしたので、
一回、PHPで読み込んでその情報を取得するという事で解決。
昔はYahooがそういう事を提供してたみたいですが
提供終了してました。

<div style="display: table;">
        <div style="display: table-cell;">
            今日の天気::<br>
            <img id="weather_0" src="">
        </div>
        <div style="display: table-cell;">
            明日の天気<br>
            <img id="weather_1" src="">
        </div>
    </div>

 

<script>
$(function(){
    $.ajax({
        type: 'GET',
        //'http://weather.livedoor.com/forecast/webservice/json/v1?city=390010',
        url: 'https://zip358.com/weather/',
        data:null,
        dataType: 'json'
    }).done(function(data){
        $("#weather_0").attr("src",data.forecasts["0"].image.url);
        $("#weather_1").attr("src",data.forecasts["1"].image.url);
    });
});
</script>

タグ

'src', 0, ajax, API, br, display, div, gt, ID, img, JS, lt, php, style, TABLE, table-cell, weather, Yahoo, クロス, ドメイン, ライブドア, わけ, , 予報, , 今日, 取得, 天気, 情報, 提供, 明日, , 終了, 解決,

google NewsをRSSで取得してjsonで返却するPHPプログラム

2018.12.22

Logging

<?php
//$_POST["sh"]...検索キーワード 
if ($_POST["sh"]) {
	$sh = urlencode(@xss_defence($_POST["sh"]));
	$res = simplexml_load_file("https://news.google.com/news/rss/headlines/section/q/$sh/?ned=jp&hl=ja&gl=JP");
	rss($res);
}
function rss(object $obj = null):void
{
	if (isset($obj->channel->item)) {
		if ($obj->channel->item) {
			$cnt = 0;
			foreach ($obj->channel->item as $item) {
				$result[$cnt]["title"] = (string)$item->title;
				$result[$cnt]["link"] = (string)$item->link;
				$result[$cnt]["pubDate"] = (string)$item->pubDate;
				$result[$cnt]["description"] = (string)$item->description;
				$result[$cnt]["source"] = (string)$item->source;
				$cnt++;
			}
		}
	}
	echo json_encode($result);
}

function xss_defence(mixed $val):mixed
{

    if(!isset($val))return false;
    if(is_array($val)){
        foreach ($val as $key => $value) {
            # code...
            $val[$key] = strip_tags($value);
            $val[$key] = htmlentities($val[$key],ENT_QUOTES);
        }
    }else{
        $val = strip_tags($val);
        $val = htmlentities($val,ENT_QUOTES);
    }
    return $val;
}

google NewsをRSSで取得してjsonで返却するPHPプログラムです。
ご自由にご使用ください。

タグ

0, channel-, cnt, com, defence, file, foreach, function, gl, Google, gt, headlines, hl, https, if, isset, item, ja, jp, json, load, lt, ned, News, null, obj, object, php, POST, quot, res, RSS, section, sh, simplexml, urlencode, void, xss, キーワード, プログラム, 取得, 検索, 返却,

クローラーするサービスの基礎。

2016.11.19

Logging

クローラーするサービスの基礎のソースを載せときます。殆どサイボウズ・ラボの人が書いたコードです。
このサンプルソースをそのまま貼り付けても一階層のリンクしか取得できません。
再帰処理の部分をコメントアウトしているからです。ちなみにコメントアウトを外してもメモリオーバーでおそらく
大体のサーバでエラーが出力されます。どうしたら良いのかといえば、DBに1階層目のリンクデータ、2階層目のリンクデータという様に保存する機能を施す。次にajaxで階層を受け渡しながら、再帰処理を行う。
再帰処理が終わる要素はそれ以上、下階層がないことを判断する。そのためには保存したデータを検索することが重要になる。=(イコール)
新規にデータを登録しているうちは、再帰処理を終わらせないようにすることが大事になる。
これの機能を加えることで巡回する事が可能になる。ここで注意しないといけないのが、外部リンクを保存しないことです。外部リンクまで保存していると巡回は永遠に終わらないでしょう・・・。
トイウコトデ
ほぼ??コピペソースを貼っときます。

<?php
echo json_encode($obj);
exit;
function get_linkarray($link)
{
	$context = stream_context_create(array("http" => array("method" => "GET", "header" => "User-Agent: simplecrawler.library.php 0.0.1")));
	$resultR = array();
	$resultS = simplecrawler($context, $link, $link, parse_url($link));
	foreach ($resultS as $k => $v) {
		$resultR[] = $v;
	}
	return $resultR;
}
function simplecrawler($context, $link, $burl, $base, $linkArrayDat = array())
{
	$linkArrayPre = crawler_link(crawler_page($link, $burl, $base, $context), $link, parse_url($link));
	foreach ($linkArrayPre as $k => $v) {
		if (!isset($linkArrayDat[$v])) {
			$linkArrayDat[$v] = $v;
			//$linkArrayDat = array_merge($linkArrayDat, simplecrawler($context, $v, $burl, $base, $linkArrayDat));
		}
	}
	return $linkArrayDat;
}
function crawler_page($link, $burl, $base, $context)
{
	if (strpos($link, $burl) === 0) {
		$page = @file_get_contents($link, false, $context);
		return $page === FALSE ? null : $page;
	} else {
		return null;
	}
}
function crawler_link($page, $burl, $base)
{
	$linkArray = array();
	if ($page === null) {
		return $linkArray;
	}
	preg_match_all("/[\s\n\t]+href\s?=\s?”(.*?)”/i", $page, $href);
	for ($i = 0; $i < count($href[1]); $i++) {
		$link = $href[1][$i];
		if (preg_match("/^http(s)*\:\/\//", $link)) {
			$result = $link;
		} elseif (preg_match("/^\/.+$/", $link)) {
			$result = $base["scheme"] . "://" . $base["host"] . $link;
		} else {
			// echo $base["path"] . “\n”;
			$b = preg_split("/\//", dirname($base["path"]));
			$t = preg_split("/\//", $link);
			foreach ($t as $v) {
				$l = $v === "." ? true : ($v === ".." ? array_pop($b) : array_push($b, $v));
			}
			$result = $base["scheme"] . "://" . $base["host"] . join("/", $b);
		}
		$linkArray[$result] = $result;
	}
	return $linkArray;
}

タグ

, 2, ajax, db, アウト, イコール, うち, エラー, オーバー, クローラー, コード, ここ, こと, コメント, これ, サーバ, サービス, サイボウズ, サンプル, ソース, それ, ため, データ, トイウ, メモリ, ラボ, リンク, , , , , 保存, 再帰, 処理, 出力, 判断, 取得, 可能, 基礎, 外部, 大事, 大体, 巡回, 新規, 検索, 機能, 殆ど, 永遠, 注意, 登録, 要素, 部分, 重要, 階層,

初心者でも自分のオリジナルアドレスでサイトやブログを持つ方法。

2015.01.18

Logging

初心者でも自分のオリジナルアドレスでサイトやブログを持つ方法を紹介します。
一番手ごろな方法はライブドアブログの有料版を使用する方法がオススメです(ドメインは別途取得が必要)。月の支いもそれほど高くありません。※年に一回ドメイン(アドレス)料金が発生します。2番目にオススメははてなブログですが、いろいろと独自の機能が面倒くさい感じです。
他にはFC2などなどブログサービスを行っている会社は有料版で独自ドメインが使用できる場合が殆どです(アメーバブログを除く)。
上記の方法が超初心者でも独自ドメイン(オリジナルアドレス)でサイト(ブログ)を持つ方法です。

次に紹介するのがレンタルサーバーをレンタルしてサイトを持つ方法です。こちらはやや難易度が高いです。
まず、必要な知識や技術取得を列挙します。

  1. FTPソフトの操作(サーバー上にディレクトリ作成)
  2. HTMLの基礎知識など(サイト作成に必要)
  3. WordPress(ブログ)アップロードの方法
  4. パーティションの知識
  5. DBの知識(MYSQL)
  6. zipファイルの解凍方法。

※ディレクトリ=フォルダ(Windows)
上記の知識が多少、必要になってきます。全然無くても勉強しながら試していくうちに徐々に覚えていきます。なので、例としてさくらレンタルサーバーの手続き方法やサイトやブログ開設方法を記載しときます。(習うより慣れろです(`・ω・´)。)
さくらレンタルサーバー(スタンダード版以上)でサイトやブログの設置する方法。
まずはレンタルのサーバ借りる手続きをこちらから行います→(スタンダード)。
注意して欲しい事は独自ドメインは後から申し込みします。
?申し込み時にさくらドメイン(アドレス:任意アドレス.sakura.ne.jp)を申し込みを行います。
※契約はスタンダードにする事、もしくはそれ以上!!。
?契約後、さくらから自動メールが届きますので保管してください。
?コントロールパネルに任意のさくらアドレス(ID)とパスワードでログインしてください。
https://secure.sakura.ad.jp/rscontrol/
?コントロールパネルから新規ドメインの契約を結びます。
ここで注意して欲しいのが契約時の選択項目で会員ID・現在さくらを利用中を選ぶことです。

?コントロールパネルから次のサイトの手順に従って作業してください。
お疲れ様です。(´Д`)
これで独自ドメインの取得及び使用ができるようになりました。
?
次にブログサイトの構築手順に進みます。
まず、コントロールパネルを開いてください。開いたらデータベースの新規作成ボタンをクリックして次のサイトの手順に従ってデータベース作成してください。ここで注意して欲しいのがデータベースの文字コードの設定をUTF-8に設定することです。また、パスワードは安易に推測されないような16文字以上のパスワードが良い感じです(ハッキングされないためにも)。
※パスワードはメモしてください。φ(..)メモメモ。
次にコントロールパネルからクイックインストール、ブログとクリックしていきます。次のサイトの手順を参考にしてください(※WordPressの手順STEP3の?から:中盤に記載)。
ここで注意して欲しいのがインストール先です。例えば、手順ではwpというフォルダにWordPressがインストールされます。※なお、ディレクトリ名の名前設定には注意が必要
なぜ、注意が必要か上記の方法でWordPressをインストールすると
ブログアドレスはhttp://オリジナルアドレス.com/wqとなってしまうからです。
?
http://オリジナルアドレス.com/にブログを表示したい場合は
FTPソフトを使用して手動でWordPressのインストールを行わないといけません(今回は省きます:手順はこちらから)。
現在状態ではオリジナルアドレスをブラウザに入力してもIndex of/という文字が表示されている状態になっていると思います。何故か、サイトを表示できる要素が無いからです。
表示させるファイルを作成しないといけません。
なのでファイル作成を行います。まずここで勉強をしてください。
マスター後、htmlファイルなどをFTPソフトを使用してアップロードを行います。FileZillaクライントというFTPソフトがオススメです(DLはこちらから、使用方法はこちらを参照)。
※ちなみにHTML作成時などにはエディタというものを使用します。
メモ帳でも作成できますが文字コードがシフトJISになってしまいますので少々問題があります。UTF-8という文字コードでサイト作成を行うのが現在の主流です(一昔前はシフトJISでしたけどね)。
エディタのオススメはテキストエディタ++です。他にもさくらエディタ秀丸エディタterapadが有名ドコロです。
((※ここではテキストエディタ++の文字コードの設定方法を記載しときます。インストール後、ファイル>新規作成と選択後にメニューバーのエンコードのUTF-8(BOMなし)で開くをクリックしてからソースコード(プログラム)を記載してください。尚、メニューバーの言語でH>HTMLと選択を行うと入力補完機能が使用できて便利です。))
ちなみにさくらレンタルサーバーのアップロード先
サーバー上の/home/ID名/www/のオリジナルアドレス.com(任意)/
という階層にアップロードする必要があります。
尚、wwwの直下にアップロードすると初期に取得した任意ID.sakura.ne.jpのアドレスに反映されます。
———-
サイトデザインなんて出来ないという方にテンプレートというものがあります。
ある程度、デザインされたファイルを配布しているのでまずは、そういうファイルを加工後、アップロードして
みるのも良いかも。テンプレート配布サイトはこちらから。
その他テンプレート配布サイト*1,*2,*3,*4
以上で初心者でもオリジナルアドレスでサイトやブログを持つ方法になります。
※注意点、ファイルやディレクトリを安易に消してしまうとサイトが表示されなくなったり機能しなくなったりしますので注意が必要です(アップロードも同様)。

タグ

2, fc, FTP, html, WordPress, アップ, アドレス, アメーバ, いろいろ, おすすめ, オリジナル, こちら, サーバー, サービス, サイト, ソフト, ディレクトリ, ドメイン, はてな, ブログ, ライブドアブログ, レンタル, ロー, , 上記, , 会社, 作成, 使用, 列挙, 初心者, 別途, 取得, 基礎, 場合, , 必要, 感じ, 手ごろ, 技術, 操作, 料金, 方法, , 有料, 機能, 殆ど, 発生, 知識, 紹介, 自分, 難易,