未経験からwebクリエーターを目指すブログ

新米webデザイナーが知識整理のために学習内容をまとめていきます。

vimとwget

コマンドライン、まだまだ苦手ですがサクサク動くのが気持ちいいし、

こっちの方が手っ取り早いな、ってことも結構あるので積極的に使っていきたいです。

 

今回、ちょっとした作業でvimを使ったのでそのログもかねて備忘録。

 

vim

取り消し u

やり直す control + r

先頭に移動 gg

一行削除 dd

編集モード i

編集モード解除 escキー

vim終了 :q!

保存して終了 :wq

 

一行飛ばしで行削除

奇数 :g/^/+d

偶数 :1d|g/^/+d

 

検索、置換

現在の行 :s/ 検索文字列 / 置換する文字列(空白なら削除)

全ての行 :%s/ 検索文字列 / 置換する文字列(空白なら削除)

 

wget

wget -i ファイル名

ファイル名の中身を一行ずつ順番に実行してダウンロード

 

参考リンク

https://qiita.com/colorrabbit/items/755cfbb0e97d48280775

http://tech.octaviadata.com/content/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%8B%E3%82%89%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%81%B6%E6%95%B0%E8%A1%8C%E3%81%A8%E5%A5%87%E6%95%B0%E8%A1%8C%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

https://orebibou.com/2016/03/wget%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E4%BD%BF%E3%81%84%E6%96%B916%E5%80%8B/#7URL

 

 

 

PEAR

たくさん略字が出てくるからアルファベット恐怖症になりそう(超初心者)

 

PEAR って何よ…】

PHPのパッケージ管理システムらしい。(?)

取得元=チャネルpear.php.net)からpearコマンドでインストールする。

 

【ついでにでてきた PECL って何…】

PHP拡張モジュール(C言語)はここからダウンロードする。

peclコマンド を使う。

 

はいよくわかりませーん!

わからないですけど、pearコマンドは覚えとけばなんかどうにかなりそうなのであまり考えずに頭に叩き込んでおくことにします。

要は、php関係の設定をするけどコマンドラインから操作しないといけないよーってことですよね?

 

pear コマンド一覧]

大体が「pear ほにゃらら」って感じですね。

 

pear help

コマンド一覧と説明を表示する。これ便利そう

 

日付を扱うためのクラス

【DateTime】クラス

第1引数…特定の日時、または 'now'

第2引数…タイムゾーンを指定するオブジェクト

例)$date = new DateTime('2001-01-01 20:00:00', new DateTimeZone('Asia/Tokyo'));

 

※時刻を出力 … format() メソッドで文字列に変換してから表示する。

例)$date = new DateTime();
  echo $date->format('Y-m-d H:i:s');

 

・「add()」メソッド

DateTimeの日時($date)にDateIntervalで指定した期間($Interval)を追加して出力できる。

例)$date->add($Interval);

  $date->format();

 

・「sub()」メソッド

add() メソッドの逆。指定した期間を引く。

 

・「diff()」メソッド

別のDateTimeオブジェクトとの差を期間(DateIntervalオブジェクト)にして出力する。

 

 

【DateInterval】クラス

因数…'P1M'などの書式で期間を指定する

例)$two_days = new DateInterval('P2D');

  $two_weeks = new DateInterval('P2W');

 

・「createFromDateString」インスタンス

因数…'2 weeks'などの書式で期間を指定する

例)$two_days = new DateInterval::createFromDateString('2 days');

 

※時刻を出力 … format() メソッドで文字列に変換してから表示する。

DateTime() とは異なり、フォーマット文字の前に「%」をつけなくてはいけないので注意。

例)$interval = new DateInterval('P1D');
  echo $date->format('%D日間'); // 1日間

 

 

【DatePeriod】クラス

第1引数…開始日時(DateTimeオブジェクト)

第2引数…期間(DateIntervalオブジェクト)

第3引数…終了日時(DateTimeオブジェクト)※この日は期間から除外される

第4引数…EXCLUDE_START_DATE を指定すると開始日時も期間から除外する。

例)$period = new DatePeriod($day1, $interval, $day2,EXCLUDE_START_DATE);

 

 

思ってたよりシンプルなのでこれは覚えられそうです。

 

 

 

 

 

 

SPL ってなんぞ?

PHP上級試験合格を目指して絶賛勉強中ですが、まだまだ知らないことが多くて不安の毎日です。

 

【SPLって?】

以前CSV吐き出し用のプログラムを作った時に「SplFileObject」には見覚えがあったんですよね。

PHP5.00以降デフォルトで使えるようになっているモジュールらしく、便利なオブジェクトが詰まってるらしい。(=インストール作業がいらない)

外部ライブラリもいらないんだとか。

モジュールって言葉を使いつつ、ふんわりとしか理解できてませんがまあいずれ染み付くと思うので深追いしないようにしてます。

 

[主なインターフェースについて]

・ArrayAccess

メソッドは offsetSet()、offsetGet()、offsetExists()、offsetUnset() の4つを実装する必要がある。

 

・Traversable

直接実装はできない。

 

Iterator

オブジェクトの内部の値にアクセスして順番に反復処理を行う。

メソッドは rewind()、valid()、current()、key()、next() の5つを実装する必要がある。

 

・IteratorAggregate

メソッドは getIterator() を実装する必要がある。

 

PHP上級の過去問に載ってるのでメモしましたがよくわかりませんね!!