404の画像をno-imageにする#jscode

2023.05.16

Logging

おはようございます、404の画像をno-imageにするコードです。案外簡単なコードですが、これでノーイメージに変換できます。因みに参照した404ページが404のステータスを吐き出していなかったら、このJSコードは機能しません。

if(document.querySelectorAll("img")){
     [...document.querySelectorAll("img")].forEach(elm=>{
        fetch(elm.src).then(response=>{
            if(!response.ok){
                elm.src = "no_image1.gif";
            }
        });
     });
}

因みに自分のブログサイトもこんな感じのコードを埋め込んでいます。これをphp言語で対応すると処理がサーバーサイドになるので重たくなります。こういうのはJSコードで対応するのが個人的には良いと思っています。尚、JSコードとPHPを連動させて表示の有無を行うのも良いかも知れません。

画像URLを参照してレスポンスデータが返ってきます、このレスポンスの変数をconsole.log(response);で表示するとstatusなども返ってきていることが分かると思います。404ステータスだけ何かしたい場合はresponse.statusで判断するともっと厳密になって良いかも知れません。

タグ

'src', console.log, document.querySelectorAll, elm, fetch, foreach, gt, if, img&quot, no-image, quot, response, response.ok, response.status, status, then, サーバーサイド, ブログサイト, レスポンス, 変数,

Bladeのinjectという物を使えば独自関数を呼び出せる。#laravel

2023.02.01

Logging

おはようございます、週に一個は技術ネタを入れようかなと思っている中の人です。

今回はタイトル通りのお話になります。bladeで独自関数を使用したいなと思ったことはありませんか。そういう時に重宝するのはinjectだというお話になります。使い方は下記の方法で可能です。

@inject('代入される任意の変数名', 'namespaceを含むクラス名')
{{ $代入される任意の変数名->呼び出すメソッド名() }}

これを知ったのは次のサイトになります。因みにbladeとはLaravelで使用できるテンプレートエンジンになります。いうなれば昔、流行ったSmartyという物と同じ位置づけですね。

因みに、この記事はあまりSEOを意識していませんので検索にヒットしないかも知れませんので、是非ともシェアして頂けると有難いです😄。

余談なんですかもう一つ、bladeでHTMLを含む文字を変数に代入するとそのまま表示されてしまいますよね、それをHTMLコードとして認識させたい場合は下記のようにすることでHTMLコードとして認識されます。

{!! 任意の変数名 !!}

追伸、こちらの方が手っ取り早いような気がします.

{{ app()->call('App\Http\Controllers\TestController@test') }}
{{app()->call('App\Http\Controllers\QiitaController@aiueo',['a'=>'test'])}}

タグ

$代, App, AppHttpControllersQiitaController@aiueo&#39, AppHttpControllersTestController@test, blade, call, gt, html, inject, Laravel, namespace, SEO, Smarty, テンプレートエンジン, メソッド名, 余談, 変数, 変数名, 追伸, 関数,

Laravelのbladeにはloop変数が用意されている🙄 #loop

2022.12.23

Logging

おはようございます、今年もあと数日ですね_(:3」∠)_。

Laravelのbladeにはloop変数が用意されています、 ワードプレスでいう$postとは考え方が違います。$loopはbladeファイルの@foreach内だけで動作するように設計されています。なので@foreach外でしようする{{$loop}}とは別ものです。

逆に$loop変数を@foreach内で表示しようとすると$loopはオブジェクトなので表示できませんとエラーが発生して怒られます。ややこしいいっその事、使用できないようにして欲しいですよね。

ErrorException
htmlspecialchars() expects parameter 1 to be string, object given

$loop変数の他に$attributes(属性)という変数もあるそうです。使いどころがイマイチ分からないですがあります。最後に予約語の一覧を抜粋して記載ときます😄。

  • data
  • render
  • resolveView
  • shouldRender
  • view
  • withAttributes
  • withName

追伸:laravelで独自関数を使用したい場合やbladeで使用したい場合などはこの方法で定義することで使用可能となります。Qiitaのリンクを参照ください。

https://qiita.com/kuroshun960/items/13a792ceabfec454cf21

タグ

attributes, blade, bladeファイル, data, ErrorException htmlspecialchars, foreach外, Laravel, loop, loop変数, object given, qiita, render, resolveView, shouldRender, withAttributes, withName, 変数, 追伸,

コードを見れば大体の技術レベルが分かるは本当?しかも、性格も分かる場合がある。

2022.02.07

Logging

おはようございます。今日の朝も寒いですね。。。

朝からcode.orgの動画を見ていたら日本もアメリカもITエンジニアの割合はあまり変わりないみたいな事を知りました、そしてアメリカでも子供たちのなりたい職業1位でもないみたいです。

さて、コードを見れば大体の技術レベルが分かるは本当?しかも性格も分かる場合があるですが、ソースコードを見ると其の人の技術がわかり、変数の名前付けとかで性格もある程度分かってしまったりします。そしてバージョン管理、ファイル管理で仕事に対する姿勢までもが分かってしまったりします。

Computer Science is Changing Everything

なので・・・日頃からご注意ください。自分の場合、Githubのコメントなどを見るとこの人は適当な人なんだなぁって事が分かってしまうかもしれません。唯、仕事に対する姿勢は少し違うかなっていうのはあります。

仕事になるとファイル管理やバージョン管理もこの頃はちゃんとするようになりました。やはり整理整頓は結構大事な要素です。ファイルがどこにいったんだろうとか検索しないでも良いように管理することは大切なことです。昔はごちゃごちゃなファイル管理をしていましたけど(反省)😣。

因みに私生活で使用するパソコンのフォルダ整理は全然ダメダメですね。整理しようと思っているのだけどフォルダやファイル数が多くて大変な感じです(負の遺産が多いです)。

タグ

, Code, github, IT, org, アメリカ, エンジニア, コード, コメント, ご注意, ソース, バージョン, ファイル, レベル, , , 今日, 仕事, 割合, 動画, 名前, 場合, 変数, 大体, 姿勢, 子供, 少し, 性格, 技術, 日本, 日頃, , 本当, 管理, 職業, 自分, 適当, ,

パスコードをランダムで生成するコードです。JavaScriptで書いてみました。

2021.08.27

Logging

今日は朝から蒸し暑さを感じます。あの一週間も続いた雨はどこに行ってしまったのでしょうか?東京では立て続けに悲惨な事件が起きています、報道することにより模倣犯を増やしているような気がします。

さて、今日はパスコード(パスワード)をランダムで生成するコードをJavaScriptで書いてみました。パスコードの強度はそれ程、高くないかもしれませんが一応、パスコードを生成する事が出来ます。ソースコードを書いていてうっかりミスをしてしまいまして、無限ループを発生させてバグ取りに5分ぐらい費やしました。ループした原因は違う変数を判断文で使っていたという初歩的なミスです。この頃はそういうミスは稀ですが・・・その結果、無限ループに陥っていました。

パスコードというものを作ってみて案外簡単に作れるものだと実感。これを作る前にパスコードメーカーを作成するという動画を見ました。githubにソースコードも記載していましたので考え方は参考にしましたがコードは違うと思います。たにぐちさんの動画はvue.jsを使用してパスコードを作っているのに対して、自分はネイティブjsでパスコードを生成しているという違いがあります。

https://zip358.com/tool/PassCode/

JavaScriptでパスコードを生成するコード。
document.getElementById("btn1").addEventListener("click", () => {
    const mode = {
        mode0: !document.getElementById("mode0").value ? 8 : document.getElementById("mode0").value,
        mode1: document.getElementById("mode1").checked ? true : false,
        mode2: document.getElementById("mode2").checked ? true : false,
        mode3: document.getElementById("mode3").checked ? true : false,
        mode4: document.getElementById("mode4").checked ? true : false
    };
    const data = {
        txt_cnt: mode.mode0,
        txt1: mode.mode1 ? "0123456789" : "",
        txt2: mode.mode2 ? "ABCDEFGHIJKLMNOPQRSTUVWXYZ" : "",
        txt3: mode.mode3 ? "abcdefghijklmnopqrstuvwxyz" : "",
        txt4: mode.mode4 ? "#$&*@+-" : "",
    };


    // console.log(mode,data);

    let str = "";

    if (mode.mode1 || mode.mode2 || mode.mode3 || mode.mode4) {
        let txt_str = data.txt1 + data.txt2 + data.txt3 + data.txt4;
        do {
            str = "";
            for (let i = 1; i <= data.txt_cnt; i++) {
                str = str + txt_str.substr((getRandomInt(txt_str.length) - 1), 1);
            }
        } while ((() => {
            let flg = [];
            flg[0] = mode.mode1 ? /[0-9]/.test(str) : true;
            flg[1] = mode.mode2 ? /[A-Z]/.test(str) : true;
            flg[2] = mode.mode3 ? /[a-z]/.test(str) : true;
            flg[3] = mode.mode4 ? /[#|$|&|*|@|+|\-]/.test(str) : true;
            
            return (() => {
                let f = true;
                for (const key in flg) {
                    if (!flg[key]) {
                        f = false;
                    }
                }
                return f;
            })();
            return false;
        })() === false);
        document.getElementById("view").value = str;
    } else {
        alert("どれかを選択してください");
    }

});
function getRandomInt(max) {
    return Math.floor(Math.random() * max);
}

タグ

5, github, javascript, コード, こと, これ, ソース, どこ, バグ, パスコード, パスワード, ミス, メーカー, もの, ランダム, ループ, , , 事件, 今日, 作成, 判断, , 動画, 原因, 報道, 変数, 実感, 強度, 悲惨, , , 東京, 模倣犯, , 無限, 生成, 発生, 立て続け, 簡単, 結果, 記載, , ,

クリックでON、OFFする表示だけど。無数の書き方があると思ふ?

2021.08.26

Logging

不要不急の町内アナウンスが流れる中、この記事を書いています。不要不急ってなんだろう、人によって解釈が違ってしまうし判断もかなり違うような気がします。

さて、今日は凄く単純なJS(javascript)のコードを書いてみました。とても簡単なコードですが素人が書くともっとコード数は増えると思いますし、玄人が書くともっとコードを短く書くことも可能かと思います、例えば自分はonoffという変数をスイッチ代わりに使用していますが、本当はこれもいらないです。そうなるともっとコード数は少なくなります。なぜ要らなくなるかと言えば、表示されている文字で判断することが可能だからです。

今回はそのコードは記載しませんので、ご自身で考えてみてください。

クリックでON、OFFする表示だけど。

プログラムコードは無数にあります、最初は短く書くという事が難しいかもしれませんが徐々に上達していくものだと思います。なので、手を動かしながら学ぶことは大切かと思います。駆け出しのエンジニアさんはいろいろなコードを見て先人の技を盗んでくださいませ。

このソースコードは美しいという考え方はわかります。数式が美しいと意味は似ているように思えてなりません。数式はわかりませんがね?。

https://zip358.com/tool/demo39/

onoff = 0;
document.getElementById("c").addEventListener("click",()=>{
    document.getElementById("view").innerHTML = (()=>{
        onoff = !onoff?1:0;
        return onoff?"on":"off";
    })();
});

タグ

javascript, JS, off, ON, onoff, アナウンス, かなり, クリック, コード, こと, これ, ご自身, スイッチ, プログラム, もの, 上達, 不要不急, , , , 今回, 今日, 使用, 判断, 単純, 可能, 変数, 大切, , 文字, 書き方, 最初, 本当, , 無数, 玄人, 町内, 簡単, 素人, 自分, 表示, 解釈, 記事, 記載,

そうなんだよなぁそうなんだよ、英語がなぁ。うんうんと頷く。

2020.12.27

Logging

そうなんだよなぁそうなんだよ、英語がなぁ。うんうんと頷く。レベルになりたい。

英語ができない日本人はいっぱいいる、じぶんもその中のひとりで、全然英語ができないのだけど、コレを見ていると英語喋れてある程度、英会話や英語を読み書きができると世界は広がるだろうなと思った。とくに、ITエンジニアは英語は大事になると思う、全然出来なくても大丈夫だけど、世界は広がらないし壁ができると思っている。どんな壁かといえば変数名の名前付けから、英語のドキュメントやリファレンスを理解する速さがかけると、最初は同じスタートラインに立っていた同期ともかなり差が出る。

I will focus on making English content! 今後は英語のみで行きます Breaking the language barrier

これからは間違いなく英語が大事だと、何度も言うけれど英語は大事です。これ意識高い系というより、将来英語が分からなかったら仕事につけない時代にこのままなるだと。日本人の人口が減少していき、外国人を受け入れを続ければ結局そうなるだと思う。そして、特にITエンジニアとしては生きていくには技術的な勉強も大事だと思うけど、基となる英語は大事な要素になるし、そのうち委託するより海外から受託する側に変わることが必ず来るだろうと思います。

50 COMMON ENGLISH PHRASES | MARINA MOGILKO

いま、じぶんはどうやって英語を苦労せずに覚える良い方法はないか探しています、日本語がまぁまぁ喋ることができるのだから、英語もまぁまぁ出来るようになると思っています。「思うは招く」です。出来ると思えばそうなるだと自分は思います。

3 tips for sounding like a native speaker

タグ

IT, エンジニア, かなり, これ, コレ, じぶん, スタートライン, ドキュメント, ひとり, リファレンス, レベル, 世界, , 人口, 仕事, 何度, 同期, 名前, , 変数, 外国人, 大事, 将来, , 意識, 日本人, 時代, 最初, 減少, 理解, , , 英会話, 英語, 読み書き,

外部VPSサーバーからさくらレンタルサーバーのDBに接続する方法。

2020.12.04

Logging

外部VPSサーバーからさくらレンタルサーバーのDB(データベース)に接続する方法は下記のコードだけでは上手く動かない。だけど、tmpファイルを生成時にパーティションにu+xの権限を与えればこのコードは要件をみたします。因みにプロセスが残ったままになるので接続が終わったら、プロセスを削除してあげてください。なのでどのプロセスを削除する機能として追加しないと使えないかな?、時間があれば完成したコードをアップします。

なお、変数の初期値はご自身で入れてください。あとポート開放expectが入っていない場合はyumなどでインストールする必要もあります。

<!DOCTYPE html>
<html lang="en">

<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.5.2/css/bootstrap.min.css">
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/all.min.css">
	<link rel="stylesheet" href="assets/css/style.css">
	<title>ssh sqli</title>
</head>

<body>
	<?php
	print ssh_sqli_connect();
	?>
	<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.5.2/js/bootstrap.min.js"></script>
</body>

</html>
<?php
function ssh_sqli_connect()
{
	global $dblink,$dbname,$sshuser, $sshhost, $sshpassword,$host,$sshport;
	$ret = null;
	$cmd = "#!/usr/bin/expect -f
set timeout 3
expect -c \"spawn ssh -f -N -L $sshport:$host:3306 $sshuser@$sshhost -oStrictHostKeyChecking=no
expect \\\"$sshuser@$sshhost's password:\\\"
send \\\"$sshpassword\\n\\\"
\"
";

	$tmpfname = tempnam(sys_get_temp_dir(), 'ssh');

	$handle = fopen($tmpfname, "w");
	fwrite($handle, $cmd);
   	shell_exec("sh $tmpfname");
	sleep(3);
	$dblink = db_connect();
	try{
		for($id = 1 ;$id<=99;$id++){
			$ret = $dblink->query("SELECT * FROM $dbname.X.xtbl where $dbname.X.xtbl.id=$id;");
			if ($cnt = (int) mysqli_num_rows($ret)) {
			  $row = mysqli_fetch_assoc($ret);
			  print ($row["id"].", ".$row["name"]);
			}
		}
	}catch(PDOException $e){
		echo "失敗: " . $e->getMessage() . "\n";
	}

	fclose($handle);
	unlink($tmpfname);

	db_close();
	return "未完成";
}

function db_connect()
{
	global $dblink, $host, $user, $password, $dbname,$sshport;
	try {
		$dblink = new  mysqli("127.0.0.1", "$user", $password, $dbname ,$sshport);
		//$dblink->set_charset("utf8");
		return $dblink;
	} catch (PDOException $e) {
		echo "接続失敗: " . $e->getMessage() . "\n";
	}
}

function db_close()
{
	global $dblink;
	$dblink->close();
}

タグ

8, charset, db, DOCTYPE, en, expect, gt, head, html, lang, lt, meta, name, quot, tmp, UTF-, vie, VPS, yum, アップ, インストール, コード, ご自身, サーバー, さくら, データベース, パーティション, ファイル, プロセス, ポート, まま, レンタル, 下記, 初期, 削除, 場合, 変数, 外部, 完成, 必要, 接続, 方法, 時間, 権限, 機能, 生成, 要件, 追加, 開放,

demo23、javascriptの非同期同期処理?

2020.11.18

Logging

今日はJavaScriptで非同期、同期処理のことに付いて考えてみた。関数を呼び出して返却の値を変数に渡す処理を作って頂けると非同期処理と同期処理の違いがわかるかと思います。例えばこういうJSの処理があるとします。

document.getElementById("btn").addEventListener("click", async (e) => {
	test1();
	test2();
	test3();
	await test1();
	await test2();
	await test3();
});

function test1() {
	return new Promise(resolve => {
		setTimeout(() => {
			console.log("btn = 1");
			resolve('1');
		}, 3000);
	});
}
function test2() {
	return new Promise(resolve => {
		setTimeout(() => {
			console.log("btn = 2");
			resolve('2');
		}, 2000);
	});
}
async function test3() {
	return new Promise(resolve => {
		setTimeout(() => {
			console.log("btn = 3");
			resolve('3');
		}, 100);
	});
}

こちらの処理を試すと結果、このような内容がデバックモードで表示されます。予想通りの結果が返ってきましたか?それとも予想外の結果が返ってきましたか?

asyncが付いていてawaitがついてない場合とついている場合とでは違いの差がわかるかと思います。いろいろと試してみると非同期処理の応用が出来るかと思います、逆に言えば上手く非同期処理を使いこなすことが出来るとコードが短縮出来たり、効率的に回せるのではないかと思います。自分もこれらを使っていろいろと作ってみたいですね(´Д`)。因みに今回、Promiseを簡略化したパターンでコードを書いています。

尚、Demo23にはデモコードが存在しますので動作を検証してみてください。
https://zip358.com/tool/demo23/

タグ

addEventListener, async, async function test, await, await test, console.log, document.getElementById, function test, JS, Promise, quot, quot;btn, quot;btn&quot, quot;click&quot, resolve, setTimeout, デバックモード, 変数, 返却, 関数,

WordPressの公式ウィジェットカレンダー末日がズレている?ので直した。

2020.11.02

Logging

WordPressの公式ウィジェットカレンダー末日がズレている?ので直した。直した箇所はこちら変数名に$ooooと書いている部分が今回修正した箇所です。修正したファイルはWordPressのインクルードフォルダにある。ジェネラルテンプレートぴーえぃちーぴー(general-template.php)

wp-includes\general-template.php 

このファイルを直しました。コアファイルなので次期UPDATEで修正されるかとは思いますが、それまではこちらの修正でなんとかなるさ?!

因みに何故、$ooooにしたのかは、お???の???という土佐弁からです。ファイルの中にget_calendar(げっとカレンダー)という関数があるのでそちらを修正しています。原因は下記です。
gmdateというものを使用している所をローカルサーバーの時間で対応しました、さくらレンタルサーバーのタイムゾーンは日本時間を指しています。若干の誤差はあるけれど酷い誤差ではないのでdateで大丈夫そうです。

要は日付の末日が正確に取れていないことが原因みたいです?
はやく修正してくれることを願っています。

function get_calendar( $initial = true, $echo = true ) {
	global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;

	$key   = md5( $m . $monthnum . $year );
	$cache = wp_cache_get( 'get_calendar', 'calendar' );

	if ( $cache && is_array( $cache ) && isset( $cache[ $key ] ) ) {
		/** This filter is documented in wp-includes/general-template.php */
		$output = apply_filters( 'get_calendar', $cache[ $key ] );

		if ( $echo ) {
			echo $output;
			return;
		}

		return $output;
	}

	if ( ! is_array( $cache ) ) {
		$cache = array();
	}

	// Quick check. If we have no posts at all, abort!
	if ( ! $posts ) {
		$gotsome = $wpdb->get_var( "SELECT 1 as test FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" );
		if ( ! $gotsome ) {
			$cache[ $key ] = '';
			wp_cache_set( 'get_calendar', $cache, 'calendar' );
			return;
		}
	}

	if ( isset( $_GET['w'] ) ) {
		$w = (int) $_GET['w'];
	}
	// week_begins = 0 stands for Sunday.
	$week_begins = (int) get_option( 'start_of_week' );

	// Let's figure out when we are.
	if ( ! empty( $monthnum ) && ! empty( $year ) ) {
		$thismonth = zeroise( intval( $monthnum ), 2 );
		$thisyear  = (int) $year;
	} elseif ( ! empty( $w ) ) {
		// We need to get the month from MySQL.
		$thisyear = (int) substr( $m, 0, 4 );
		// It seems MySQL's weeks disagree with PHP's.
		$d         = ( ( $w - 1 ) * 7 ) + 6;
		$thismonth = $wpdb->get_var( "SELECT DATE_FORMAT((DATE_ADD('{$thisyear}0101', INTERVAL $d DAY) ), '%m')" );
	} elseif ( ! empty( $m ) ) {
		$thisyear = (int) substr( $m, 0, 4 );
		if ( strlen( $m ) < 6 ) {
			$thismonth = '01';
		} else {
			$thismonth = zeroise( (int) substr( $m, 4, 2 ), 2 );
		}
	} else {
		$thisyear  = current_time( 'Y' );
		$thismonth = current_time( 'm' );
	}

	$unixmonth = mktime( 0, 0, 0, $thismonth, 1, $thisyear );
	$last_day  = gmdate( 't', $unixmonth );
	$oooothisyear  = date( 'Y', $unixmonth  );
	$oooolast_day  = date( 't', $unixmonth );
	$oooothismonth = date( 'm' , $unixmonth);

	// Get the next and previous month and year with at least one post.
	$previous = $wpdb->get_row(
		"SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date < '$thisyear-$thismonth-01'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date DESC
			LIMIT 1"
	);
	$next     = $wpdb->get_row(
		"SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date > '$oooothisyear-$oooothismonth-{$oooolast_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date ASC
			LIMIT 1"
	);

	/* translators: Calendar caption: 1: Month name, 2: 4-digit year. */
	$calendar_caption = _x( '%1$s %2$s', 'calendar caption' );
	$calendar_output  = '<table id="wp-calendar" class="wp-calendar-table">
	<caption>' . sprintf(
		$calendar_caption,
		$wp_locale->get_month( $thismonth ),
		gmdate( 'Y', $unixmonth )
	) . '</caption>
	<thead>
	<tr>';

	$myweek = array();

	for ( $wdcount = 0; $wdcount <= 6; $wdcount++ ) {
		$myweek[] = $wp_locale->get_weekday( ( $wdcount + $week_begins ) % 7 );
	}

	foreach ( $myweek as $wd ) {
		$day_name         = $initial ? $wp_locale->get_weekday_initial( $wd ) : $wp_locale->get_weekday_abbrev( $wd );
		$wd               = esc_attr( $wd );
		$calendar_output .= "\n\t\t<th scope=\"col\" title=\"$wd\">$day_name</th>";
	}

	$calendar_output .= '
	</tr>
	</thead>
	<tbody>
	<tr>';

	$daywithpost = array();

	// Get days with posts.
	$dayswithposts = $wpdb->get_results(
		"SELECT DISTINCT DAYOFMONTH(post_date)
		FROM $wpdb->posts WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
		AND post_type = 'post' AND post_status = 'publish'
		AND post_date <= '{$oooothisyear}-{$oooothismonth}-{$oooolast_day} 23:59:59'",
		ARRAY_N
	);

	if ( $dayswithposts ) {
		foreach ( (array) $dayswithposts as $daywith ) {
			$daywithpost[] = (int) $daywith[0];
		}
	}

	// See how much we should pad in the beginning.
	$pad = calendar_week_mod( gmdate( 'w', $unixmonth ) - $week_begins );
	if ( 0 != $pad ) {
		$calendar_output .= "\n\t\t" . '<td colspan="' . esc_attr( $pad ) . '" class="pad">?</td>';
	}

	$newrow      = false;
	$daysinmonth = (int) gmdate( 't', $unixmonth );
	$oooodaysinmonth = (int) date( 't', $unixmonth );

	for ( $day = 1; $day <= $oooodaysinmonth; ++$day ) {
		if ( isset( $newrow ) && $newrow ) {
			$calendar_output .= "\n\t</tr>\n\t<tr>\n\t\t";
		}
		$newrow = false;

		if ( current_time( 'j' ) == $day &&
			current_time( 'm' ) == $thismonth &&
			current_time( 'Y' ) == $thisyear ) {
			$calendar_output .= '<td id="today">';
		} else {
			$calendar_output .= '<td>';
		}

		if ( in_array( $day, $daywithpost, true ) ) {
			// Any posts today?
			$date_format = gmdate( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) );
			/* translators: Post calendar label. %s: Date. */
			$label            = sprintf( __( 'Posts published on %s' ), $date_format );
			$calendar_output .= sprintf(
				'<a href="%s" aria-label="%s">%s</a>',
				get_day_link( $thisyear, $thismonth, $day ),
				esc_attr( $label ),
				$day
			);
		} else {
			$calendar_output .= $day;
		}

		$calendar_output .= '</td>';

		if ( 6 == calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins ) ) {
			$newrow = true;
		}
	}

	$pad = 7 - calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins );
	if ( 0 != $pad && 7 != $pad ) {
		$calendar_output .= "\n\t\t" . '<td class="pad" colspan="' . esc_attr( $pad ) . '">?</td>';
	}

	$calendar_output .= "\n\t</tr>\n\t</tbody>";

	$calendar_output .= "\n\t</table>";

	$calendar_output .= '<nav aria-label="' . __( 'Previous and next months' ) . '" class="wp-calendar-nav">';

	if ( $previous ) {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-prev"><a href="' . get_month_link( $previous->year, $previous->month ) . '">? ' .
			$wp_locale->get_month_abbrev( $wp_locale->get_month( $previous->month ) ) .
		'</a></span>';
	} else {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-prev">?</span>';
	}

	$calendar_output .= "\n\t\t" . '<span class="pad">?</span>';

	if ( $next ) {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-next"><a href="' . get_month_link( $next->year, $next->month ) . '">' .
			$wp_locale->get_month_abbrev( $wp_locale->get_month( $next->month ) ) .
		' ?</a></span>';
	} else {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-next">?</span>';
	}

	$calendar_output .= '
	</nav>';

	$cache[ $key ] = $calendar_output;
	wp_cache_set( 'get_calendar', $cache, 'calendar' );

	if ( $echo ) {
		/**
		 * Filters the HTML calendar output.
		 *
		 * @since 3.0.0
		 *
		 * @param string $calendar_output HTML output of the calendar.
		 */
		echo apply_filters( 'get_calendar', $calendar_output );
		return;
	}
	/** This filter is documented in wp-includes/general-template.php */
	return apply_filters( 'get_calendar', $calendar_output );
}

タグ

calendar, general-template, GET, gmdate, oooo, php, UPDATE, WordPress, wp-includes, インクルード, ウィジェット, カレンダー, コア, こちら, サーバー, さくら, ジェネラル, ズレ, そちら, それまで, タイム, テンプレート, ファイル, フォルダ, もの, レンタル, ローカル, 下記, , 今回, 使用, 修正, 公式, 原因, 土佐弁, 変数, 対応, , 時間, 末日, 次期, 箇所, 部分, 関数,

即席デザイン文字生成[iDrawジェネレーター]という命名がダサいw

2020.07.09

Logging

即席デザイン文字生成[iDrawジェネレーター]というWEBツールを作りました。あのイケハヤさんみたいなテキスト文字だけのアイキャッチ画像みたいなものが生成可能です。これをどうして作ったのか?

昔、パソコンが壊れてアドビが一時期があり、その時に仕方ないのでこれでアイキャッチ画像を生成して使用しておりました。とくに凝ったデザイン文字が生成されるわけではなく。書体と背景色や文字色などを変更してそれらしいものを即席で作るというものです。昔、作ったので変数の命名もかなり杜撰な感じでしたがひとまず動く形になりましたので、公表しますね。

ご自由にお使いいただければ幸いです。
https://zip358.com/tool/idraw/

この他にも無料ツールをいろいろ作っているのでご自由にお使いいただければと思っています。

タグ

iDraw, , web, あい, アドビ, イケハヤ, お使い, かなり, キャッチ, これ, ご自由, ジェネレーター, それ, ツール, テキスト, デザイン, パソコン, もの, わけ, 一時期, , 使用, 公表, 即席, 可能, 命名, 変数, 変更, , 感じ, 文字, , , 書体, 杜撰, 無料, 生成, 画像, 背景色,

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

2020.07.07

Logging

【英単語暗記法】20000語を覚えるための方法

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

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

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

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

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

タグ

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

数値を日本語桁数の読み方に変換するWEBサービスを作りました。

2020.06.20

Logging

数値を日本語桁数の読み方に変換するWEBサービスを作りました。リンクは下記になります。何故、作ったのか?、検索すると同じようなサービスがありましたが、リアルタイムに数値を漢字に変換してくれないので自分でリアルタイムで検索できるものを作った次第です、コードはあまりキレイではないし改良できる部分はあります、Qiitaなどに公開しないので良いかと思い変数の命名も適当な感じです。

https://zip358.com/tool/ketayomi/ (?リンク先には数字の読み方 表もあります)

直でリンクに飛んでもらうのも良いですし、無料サービスから試していただくのもありです。これも無料サービスの一環として作りました。それなりに使えるじゃないかなと思ったりしています?。数値を日本語全漢字にするロジックを考えたとき、面倒くさいなと思ったので、、、データとして持つことにしました。

こういうのあまり使う人がいないけど、使う人は仕事などで使用する可能性があるかなとか思ったりしています。こういうニッチなサービスを無料サービスとして公開していけば数撃ちゃ当たるじゃないかと思います。今回の数値を日本語桁数漢字にするサービスは単純なものなので誰でもプログラマーなら出来る範囲だと思います。駆け出しプログラマー、エンジニアでも作れる品物ではないかと…。

次回はもっといろいろな人が使うお手軽サービスを作りたいですね。シェアして頂けると幸いです。

タグ

qiita, エンジニア, コード, プログラマー, リアルタイム, ロジック, 一環, 命名, 品物, 変数, 手軽サービス, 数値, 数字, 日本語桁数, 日本語桁数漢字, 次回, 漢字, 範囲, , 駆け出しプログラマー,

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, コード, ソース, タイトル, テキスト, ところ, ニュース, もの, ライブ, リンク, 一覧, 修正, 取得, 場合, 変数, 必要, 抽出, 早朝, 書き方, 理解, 若干, 言語, 記号, 配信,

phpでイマドキDB接続の仕方なの?

2019.07.20

Logging

実行していないので上手く動いているかは
未知数ですが、コードの書き方はイマドキの書き方に
しています。PHP公式ではこう書かれています。

プリペアドステートメントのパラメータに変数をバインドすると・・・。
i 対応する変数の型は integer です。
d 対応する変数の型は double です。
s 対応する変数の型は string です。
b 対応する変数の型は blob で、複数のパケットに分割して送信されます。

<?php
$servername = "hostname";
$dbname ="dbname";
$dbusername = "root";
$dbpassword = "pass";
if($conn = mysqli_connect($servername,$dbusername,$dbpassword,$dbname)){
    $sql = "select username from mastertbl where uid =? and password = ?";
    $stmt = mysqli_stmt_init($conn);
    if(mysqli_stmt_prepare($stmt,$sql)){
        mysqli_stmt_bind_param($stmt,"ss",$uid,password_hash($password,PASSWORD_DEFAULT));
        mysqli_stmt_execute($stmt);
        mysqli_stmt_store_result($stmt);
        if($cnt=mysqli_stmt_num_rows($stmt)){
            $result = mysqli_stmt_get_result($stmt);
            for($i=0;$i<$cnt;$i++){
                $row = mysqli_fetch_assoc($result);
            }
        }
    }
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
}

タグ

blob, conn, connect, db, dbname, dbpassword, dbusername, double, hostname, if, Integer, lt, mysqli, pass, php, root, select, servername, SQL, string, user, イマドキ, コード, バインド, パケット, パラメータ, プリペアドステートメント, 仕方, 公式, 分割, , 変数, 実行, 対応, 接続, 書き方, 未知数, 複数, 送信,

全ての定義済の変数を配列で返す

2019.03.16

Logging

全ての定義済の変数を配列で返す関数です。
全てなのでとってきて欲しくないものまでも取ってきます。
なのでそういうのはunsetします。
ちなみに似たようなのでcompactという関数がPHPには存在します。
何に使用する場合に便利かは人それぞれ違いますが
自分の場合はテンプレートエンジンを使用するときに重宝してます。
テンプレートエンジン・・・TwigやSmartyなど

<?php
$a = "abc";
$b = array(1,2,3);
$c = 123;
$vars = get_defined_vars();
unset($_COOKIE);
unset($_POST);
unset($_GET);
unset($_FILES);
unset($GLOBALS);
foreach ($vars as $key => $value) {
    var_dump($key);
    var_dump($value);
}
//...
var_dump($vars);

 

タグ

, 2, , ABC, array, as, compact, COOKIE, defined, dump, files, foreach, GET, GLOBALS, gt, key, lt, php, POST, Smarty, Twig, unset, value, var, vars, エンジン, それぞれ, テンプレート, とき, もの, , , 使用, 便利, 全て, 場合, 変数, 存在, 定義, 自分, 配列, 重宝, 関数,

javascriptのアロー関数というものを使ってみた。

2019.02.24

Logging

javascriptのアロー関数というものを使ってみた。
関数と同じだよねとおもっていると落とし穴があるみたい。
どうもグローバル変数が挙動不審みたいなんです。

/* アロー関数 */
let func1 = a => a + 3;
console.log(func1(5));
let func2 = (a,b)=>{
    return a + b + 3;
}
console.log(func2(1,2));

タグ

, 2, , 5, console, FUNC, gt, javascript, let, log, return, アロー, グローバル, もの, 変数, 落とし穴, 関数,

javascriptを勉強中

2018.12.15

Logging

var a = 3;
var b = 10;
var obj = {
        hoge:function(a){
            a = a + a;
            return a;
        },
        a:a = a && 5,
        b:b = b || 3
    };
console.log(obj.hoge(2));
console.log(obj.a);
console.log(obj.b);

上記のCodeを動かすと仕事と表示されます(笑)、4,5,10と表示されます。
何故そうなったかを考えるとキリがないのでそういうものだと
思ったほうが良いかもしれないです。
説明するとhogeはオブジェクトです。あとは変数とIF文の省略系を
記述しているだけです、実際は=もいらないですが・・・。
わかりやすく自分なりに記載したつもりです。
javascriptライブラリってこういうのが何百行も記載して成り立っていますが
概念はこういう事です。自分は基本的に概念しか覚えないのです。
何故、そうしているか・・・自分が怠惰な人間だからです。
 

タグ

10, 2, , 4,5,10, 5, amp, Code, console, function, hoge, if, javascript, log, obj, return, var, あと, オブジェクト, キリ, つもり, もいら, もの, 上記, 仕事, 勉強, 変数, 実際, , 省略, 自分, 表示, 記載, 記述, 説明,

var_exportという関数がprint_rよりも使える?

2017.06.18

Logging


var_exportという関数がprint_rよりも使い物になるかも。
何が良いかは、下記の仕様を読んで下さい。
http://php.net/manual/ja/function.print-r.php
http://php.net/manual/ja/function.var-export.php
この頃、知ったことと言えばPHPにはarray_searchとかいう関数と
in_arrayとかいう関数があるのですけど、in_arrayの方を
使用することが安全だと知りました。
array_searchは配列の中から同じ変数を見つけてくるのですけど
最初に見つけた配列番号だったかな、それを返却値として
返してくれるのです、なので、そのままif文で判断していると痛い目に
合います。何故って配列番号0番目にあった場合、戻り値が
0番目なので、if文で偽の判断をしてしまうのです。
ここかなり痛い要素です。
if文の中で真偽の判断する場合はfalseで判断してあげると
良いでしょうということです。そういう事があるので
in_arrayの方が良いのかもしれないと思った次第です。
http://php.net/manual/ja/function.array-search.php
http://php.net/manual/ja/function.in-array.php

 
 

タグ

array_search, B01HO61ZY2, false, if文, in_array, PHP 7+MySQL, print_r, var_export, かなり痛い要素, 使い物, 入門ノート, 変数, 戻り値, 真偽, 返却値, 配列番号, 配列番号0番目, 関数,

寝る時間を削っても。

2016.10.26

Logging

寝る時間を削っても勉強しないという事がわかりました。
今まで勉強していない人がいきなり勉強するようになるとか例外だなと
痛感しました。勉強したいのだけどやる気が出ない。
このやる気を起こさせる何か(原動力)があれば勉強するだと思う。
そういう事で勉強するメリットを考えてみる。
例えば英語、今まで勉強していない英語を勉強するメリットは?。
1.映画が字幕無しで観ることが出来る。
2.英語サイトがすらすら読むことが出来る。
3.海外旅行で何とかなりやすい。
4.プログラムの変数名がそれなりになる。
そう思うとそれなりにメリットはあるだけど、ただ、そのレベルまで
たどり着くには、一体どのぐらいの時間をかけないと駄目なんだろうかと
思うわけです。そう思うと勉強する気になれない人が多いだと言う事を
昔、本で読んだことがあります。
勉強をしようとする人は、例えばめちゃくちゃな英語でも
使ってみよう会話してみようと考えるわけです。
要するに最初から完璧を目指さない出来る範囲で試行錯誤して
トライ・アンド・エラーを繰り返し勉強するだそうです。
そうすることによっていつの間にか英語が身についてるという
事らしいです。
※ちなみに自分の英語力は中学生一年生以下、たぶん小学生並みです。
下手すると小学生低学年並みなのかも。

タグ

, 2, , 4, こと, サイト, それなり, プログラム, めちゃくちゃ, メリット, やる気, レベル, , , 会話, , 例外, 勉強, 原動力, 変数, 字幕, , 映画, 時間, 最初, , , 海外旅行, 痛感, 英語, 駄目,

DMM英会話とかで英会話を勉強する?

2015.12.01

Logging


DMM英会話とかで英会話を勉強する?
評判は良い講師に当たれば、勉強になるけどそうでない講師に
当たると変な英語を教えられるとか、そんな評判のDMMの英会話ですが!!
月々のお値段もお手頃価格なんです。
それだけでも魅力的な感じなのですが・・・
いまだに申し込んでいません。
英会話は今後、重要になると思いますから、まだ記憶力が
落ちていない今の時期に勉強して英語の資格などを
取ろうかなとか野望がありますが、
英語の成績は高校まで全然ダメでした。
高校の英語は簡単だったこともありまぁまぁの成績でしたが
それまでの英語の成績は全然でした。
ちなみに基礎の英語からやり直そうとしているのですが
何から始めればよいのかわからない感じです。
それぐらい英語の力はないのです。
コードを書く時の変数の名前とか
そういうのって基本英語スペルとかが多いですけど
自分はそういうのができないので結構、日本語かしょぼい英語になり
あぁ?ってなるのが、自分としては嫌なので
勉強しようとは思っています。
思っているけど・・・・。
 

タグ

DMM英会話, いまだ, コード, しょぼい英語, それぐらい英語, それだけ, それまで, 基本英語スペル, 基礎, 変数, 成績, 日本語, 月々, 良い講師, 記憶力, 評判, 資格, 野望, 高校,

wordpressのhttps化は基本的に不可能だという事。{現時点では}改め{対応}

2015.08.02

Logging


wordpressのhttps化は基本的に不可能だという事がわかった。httpsに変更することはできるができるのは、トップページのみ、それ以外はwordpressの仕様なのかwp_head部分がhttpを指すことがわかったので恐らく現時点ではhttps化は無理だという事が判明。もし、どうしてもhttps化したい場合は他のCMSを使用することをお勧めします。基本的にNET業界はhttpsを推進しているので、そう遠くない時期にWordpressもhttps化を行うだろうと思っています。
※SSL化を試みる方法をぐぐると記載していますが恐らく難しいのではないだろうかと思います。今回、SSL化にあたりDBを一括置換して置き換えてみてたりしたのですが、全然、うまく行きませんでした。おそらくwp_head関連のファイルを変更すれば可能だと思いますが、そこまでしてまでSSL化するほど・・体力がありませんので自分は辞退します。
今回、さくらサーバが提携したラビットSSLを使用してSSL化を試みたわけですが、若干、損をした気分はありますがDLファイル時にSSLのURLでダウンロード出来るようになったので、そこだけは、よかったです。
 
※ちなみに初期の状態でSSLを使っていたら、おそらく問題なく使用できると思います。
 
header.phpに書かれているwp_head()が実行されたタイミングでブラグインのjs・cssパスが出力されるので、その内容を書き換えてしまいます。
下記の方法で対応可能になります。

 

   // HTTPS通信時、プラグインがcss・jsパスをhttp://?で出力するのを対策する。
   ob_start();
   wp_head();
   $wp_head_contents = ob_get_clean();
   $wp_head_contents = str_replace('http://', '//',$wp_head_contents);
   echo($wp_head_contents);

上のソースコードは、wp_head()が吐き出す内容をob_start関数で出力バッファリングします。バッファリングした内容を変数に格納して、変数内の文字列にhttp://?で始まるパスがあれば、//?に置換した上でブラウザに出力しています。
こうすることで、http・httpsのどちらにも対応できるようになります。
引用:http://coneta.jp/11936.html

タグ

$wp_head_contents, CMS, css・jsパス, DLファイル時, header.php, head部分, https化, js・cssパス, NET業界, ob_start関数, SSL化, str_replace, WordPress, wp_head, wp_head部分, wp_head関連, wp_https化, さくらサーバ, ソースコード, トップページ, ブラウザ, プラグイン, ラビットSSL, 一括, 仕様, 体力, 内容, 初期, 判明, 変数, , 文字列, 時期, 現時点, 若干,