_onichannn

【Javascript】Javascriptでクリップボードへのコピーを行う。

IE以外のモダンブラウザでクリップボードへ特定のテキストを流し込む方法。

ZeroClipboardを用いる。↓
https://github.com/zeroclipboard/zeroclipboard

まずは準備。

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="/js/ZeroClipboard.min.js"></script>
<script>
var clip = new ZeroClipboard($(".zero-clip"), {
	moviePath: 'ZeroClipboard.swf'
});
clip.on('complete', function (client, args) {
	// コピーが成功した際のコールバック処理を記述する
});
</script>

ZeroClipboard()の第一引数にはコピーを実行する際のトリガーとなる要素(ボタン要素など)を指定する。
※この際渡す要素はjQueryオブジェクトであることに注意。
また第二引数のmoviePathプロパティに指定するswfファイルはスクリプトから参照できる場所に配置すること。

次にトリガーを引いた際のコピー対象となるテキスト要素にIDを割り当て、トリガー要素の「data-clipboard-target」属性にそのIDを持たせる。

下記例。

<button class="zero-clip" data-clipboard-target="target" type="button">Copy</button>

これですべての準備が完了。設定したボタンを押せば、指定した要素内のテキストがクリップボードにコピーされる。
フラッシュの機能を用いて実現しているため、iPhoneなどのフラッシュ非対応デバイスでは動作しない点に注意。

 

【Javascript, PHP】CakePHP2.4のセキュリティコンポーネントをAjaxによるPOSTデータで通過させる。

メモ。

var data = {};
$(this).find('input[type!="submit"]').each(function() {
	data[$(this).attr('name')] = $(this).val();
});

上記のようにして特定フォームの全インプット要素(Submit属性は除く)を拾ってポストすればセキュリティコンポーネントを通過することが出来る。
しかし、セキュリティトークンは一度の処理のみ有効なので連続してポストした場合、2回目以降が403で弾かれてしまうので注意されたし。

また上記の拾い方をした場合、コントローラー内からは通常通り「$this->request->data」で受け取ることができるので非常に便利。

 

【CentOS】SSHでtopコマンドを叩く方法。

バッチ処理中にtopコマンドをそのまま叩くと下記のように怒られる。

top: failed tty get

なのでexec()などからtopを叩きたい場合は下記のようにパラメーターをつければOK。

top -b -n 1

「-b」がバッチへの対応。「-n 1」は更新回数。これを指定しないと明示的に処理を止めるまで結果を吐き続ける模様。

 

【CentOS】topコマンドの更新頻度を指定する。

めも。

# 1秒間隔
top -d1

# 10秒間隔
top -d10

# 0.1秒間隔
top -d0.1

 

【Linux】KNOPPIXを用いてHDDの究極完全消去を行う。

めも。

1, まずはKNOPPIXをコンソールモードで起動する。

KNOPPIXのディスクをマウントし「boot:」の文字が表示されたら下記のコマンドを入力する

boot:knoppix 3 noswap

2, 入力に成功すると下記のようなコマンド待機状態になる

root@Microknoppix:~#

3, 下記コマンドを実行し、消去したい HDDの情報を調べる

root@Microknoppix:~# sfdisk -l

下記のような情報が返却される

Disk /dev/sda: 238216 cylinders, 16 heads, 63 sectors/track
...
...
略
...
...

上記1行目の「/dev/sda」という部分がディスクの名前を指している。

4, 最後にHDDの完全消去を行う。

次のコマンドを実行

root@Microknoppix:~# shred -z -v /dev/sda

※この方式はランダムな書き込みを25回行い最後にNULL(0)を書き込む。非常に時間が掛かるので注意。

5, 「done」と表示されれば消去完了。

 

【PHP】完全自分用変数ダンプ用関数。

var_dump()の拡張版。アプリごとに毎回書くのがめんどくさくなったのでメモ。

// 処理続行
function v() {
	$num = func_num_args();
	if($num != 0) {
		$args = func_get_args();
		echo "<pre>\n";
		for($i = 0; $i < $num; $i++) {
			var_dump($args[$i])."\n";
		}
		echo "</pre>\n";
	}
}

// 処理終了
function vd() {
	$num = func_num_args();
	if($num != 0) {
		$args = func_get_args();
		echo "<pre>\n";
		for($i = 0; $i < $num; $i++) {
			var_dump($args[$i])."\n";
		}
		echo "</pre>\n";
	}
	die();
}

 

【PHP】DOM要素をスクレイピングするSimple_HTML_DOMの使い方。

めも。

1, 下記URLからライブラリをダウンロード。

http://simplehtmldom.sourceforge.net/

2, 落としたファイルの中から「simple_html_dom.php」を探しインクルードなりオートロードなりする。

3, あとは下記のように使う。

$url = 'http://example.com/';

$html = file_get_html($url);

$a = $html->find('a');

foreach($a as $elem) {
	echo $elem->href;
}

上記は取得したページに存在するa要素のhref属性を全て出力する処理の例。

find()関数にはjQueryセレクタと同じ文字列を渡せるためとても使いやすい。

さらなる詳細や応用方法は下記本家ドキュメントを参照されたし。

http://simplehtmldom.sourceforge.net/manual.htm

 

【CentOS】tarコマンド自分用まとめ。

# 解凍
tar xvzf [ファイル名].tar.gz

# 圧縮
tar cvzf [圧縮後のファイル名].tar.gz [圧縮前のファイル名]