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
PEAR
たくさん略字が出てくるからアルファベット恐怖症になりそう(超初心者)
【PEAR って何よ…】
PHPのパッケージ管理システムらしい。(?)
取得元=チャネル(pear.php.net)からpearコマンドでインストールする。
【ついでにでてきた PECL って何…】
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
直接実装はできない。
オブジェクトの内部の値にアクセスして順番に反復処理を行う。
メソッドは rewind()、valid()、current()、key()、next() の5つを実装する必要がある。
・IteratorAggregate
メソッドは getIterator() を実装する必要がある。
PHP上級の過去問に載ってるのでメモしましたがよくわかりませんね!!