ど素人から毛を生やす。<延>

Web

:nth-of-typeとクラス等の属性

Web > css 2017年10月17日(最終更新:1年前)

どもです。
ちょっと:nth-of-typeが思った挙動と違うことになったので、
:nth-of-typeとクラス等の属性の関係について、検証です。

基本

div#box0-1 p:nth-of-type(3){
	color:#ff5555;
}
div#box0-2 p:nth-child(3){
	color:#5555ff;
}
div#box0-1

いと若うをかしげなる声の


なべての人とは聞こえぬ、

... 続きを読む »

keyup / keydown の使い分け

Web > javascript 2017年9月29日(最終更新:1年前)

どもです。
この頃、入力フォーム周りで色々やることが多いので備忘。

jQueryでキーを押したときの動作といえば、
keydown / keypress / keyup
この3つ。

内、keypressはブラウザ差異があるので、使用の際は注意。
今回は、keyup / keydown のみ考える。

keydown ... 続きを読む »

Utf-8では全角文字が3byteだけど、2byte扱いで切り取りたい。

Web > PHP 2017年9月15日(最終更新:1年前)

どもです。

CSV出力したり、他サイトとデータのやり取りをしたいとき、
Utf-8では全角文字が3byteですが、2byte扱いで切り取りたい場合があります。

そういうときの解決法。

SJISに一度変換してから、SJISとしてmb_strcutを使用するわけです。

でもこれ、いわゆる機種依存文字が来ると死にます。

ちょっと改良。

文字数をカウントするだけなら

で特に問題ないんだけどなー!
変換するのはいろいろ怖いからあんまりやりたくないなー。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (
... 続きを読む »

[php]switch->caseの中で正規表現してみた

Web > PHP 2017年9月13日(最終更新:1年前)

どもです。

例えば様々な項目の中に「url1」から「url5」までがあるとして、
これをswitchで処理したい場合があったとします。

このとき、「urlX」は同じ処理にしたい。
その場合、こういう書き方になると思います。

これ、URLが例えば20まで増えたら?

case20個書くの?? うへぇ。嫌だぁ。

と思ったら、caseには関数や条件式が使えたのか。

ここで注意したいのが、if()だとpreg_match()でいいところが、switchだとpreg_match()===1になる点。

ifの場合、preg_match()でマッチできたときは1≒trueが入って問題ないのですが、
switchの場合はきちんとtrueを返してやらないとダメっぽい。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった
... 続きを読む »

PHPの配列を任意の位置で分割するにはarray_splice()を使えば良かったのか

Web > PHP 2017年9月8日(最終更新:1年前)

どもです。

クラス直下の連想配列に、大量の連番な配列を加えなければならなくなり、
そんなモン手書きでやってられっかと配列の任意の場所に配列を加える方法を探しました。

ありました。
[Qiita]PHPで連想配列の任意の位置に要素を挿入・削除する

神かよ。

中身を読んでみたのですが、
ベース配列を挿入する位置の前後で分ける動作をどこで行っているのかがわからず、調べることに。

で、結論としてはarray_splice()がその主犯だったわけなのですが。

array_splice()の基本的な挙動
・実行すると、ベースの配列が変更される
・左辺に変数を設けると、ベースの配列から弾かれた要素が格納される

第三引数を設けない(第三引数は削除範囲)と以降全てが削除対象となり、
格納用変数に第二引数後の要素が入る。
また、元の配列は第二引数以前の要素のみが残る。... 続きを読む »

PHPの開発エディタは必ず空白が可視化できるものを使おうと誓った話。

Web > PHP 2017年8月30日(最終更新:1年前)

どもです。
今回はちょっと吃驚したトラブルの話。

本来、やりたかったことはとてーもシンプル。

実際は$telに値を入れてから色々処理して最終的な$storage[]に入れるわけですが。

重要なのはループの中で、複数回、処理用の変数$telに新しい値を入れて使用していること。
勿論、この行為自体には何も問題がありません。

が、このたび電話番号2の$telが、電話番号1の$telを引き継いでしまう事件が発生しました。

どーいうこっちゃと頭抱えながらエディタを睨み付けたところ…

うそだろバーニィ…

これエラーになんねーのかよ…

そういえば、PHPって変数名を全角にできるんだった…

つまり、変数【$tel】ではなく、変数【$tel 】として登録されてしまったと。
電話番号2の処理で変数【$tel】呼び出せば、必ず電話番号1が先に処理されるのであれば、
電話番号1の変数【$tel】が継承されることになる。... 続きを読む »

jQueryのajaxでphpを実行して、配列を返り値にして再びjsで処理したい

Web > javascript 2017年8月18日(最終更新:1月前)

どもです。

今回の課題は、jQueryからphpを実行して、返り値に配列を受け取って再びjsで処理 です。
ajaxは不慣れなので、基本から踏まえましょう。

①基本形

jQuery1.8で新しい書き方になっていて、現在旧仕様は非推奨。
僕が今回携わった環境は古ぅいところなので旧仕様でしたが、新規で書くなら上。

パラメータについては、以下のサイト様を参照。見た感じ、ここが新仕様かつ分かり易い。
jQuery:一般的なAjax通信を実装するには?($.ajax)- Build Insider

②phpから値を受け取って処理したい

ajaxは他のjsの流れと切り離されるため、$.ajax({})の外に後続処理を記述してしまうと
そちらが先に実行されてしまう。
返り値を使用したい処理は、必ずdone(success)に記述すること。... 続きを読む »

SQLでJOINするカラムを条件分岐させようとした話

Web > Other 2017年7月20日(最終更新:4月前)

どもです。
SQLで嵌ったので覚書。

状況としてはこんな感じ。

FRONをSELECTで生成した仮想列にしたいわけです。
しかし、これだと「Unknown column '列AorB' in 'on clause'」というエラーを食らってしまいます。

SELECTで生成した仮想列は、FROMにまで及んでくれないのですね。

そういえば、FROMでもCASEって使えるようです。

これで解決です。

しかし、これ以外にも色々と方法があるそうで。
モノによって速度にも差が出るので、ちょっち列挙してみます。... 続きを読む »

input type="file"でアップロードされたファイル名を取得(IE9以下も)

Web > javascript 2017年7月13日(最終更新:1年前)

どもです。

jsにて、input type="file" でアップロードされたファイル名を参照する必要がありました。

解決です。

と思いきや、

これではIE9以下では値が取得できないとのこと。

調べてみたところ、.fileにはFileAPIというものを使用しており、IEは10以上からしか対応していないと。

vistaのサポートも終わったしIE9以下とか捨てていーじゃん(゜-゜)
とか思う気持ちはありますが、仕方ないので対応しましょう。

まんま参考サイト様の受け売りなのですが、
input type="file"の.valueを取得すると、一般的なブラウザではファイルパスかファイル名になるそうです。

IEの場合はファイルパスなので、/で区切って配列化し、末尾のファイル名だけを取得します。
これでおk。... 続きを読む »