2012/01/19

【雑記】懐かしい駄菓子があったので

懐かしい駄菓子があったのでつい買っちゃいました。

小学生ぐらいの時は放課後よく駄菓子屋に行ったなぁ いろいろ混ぜて食べたりしてあの頃は本当に行儀が悪かったなと 思います。 さすがに最近は落ち着いて来ましたがこういうの見ると懐かしいですね。 終わり

2012/01/16

【PHP】https(SSL)環境に対してcURLの実行

https環境に対して cURL を実行した際のメモ

cURLを使う際 httpsで通信することがあると思います。
その際証明書エラーのようなものが出ます。

この警告はfopenなどのときにも出力されます。

cURLでは下記のオプションに 「false」 をセットすることによってSSL証明書の検証を
行わないようになります。

CURLOPT_SSL_VERIFYPEER
下記がサンプルソースです。
<?php
// リクエストURL
$url = "https://www.example.com/";
// リクエストパラメータ
$param = array(
    'test'  => 'Apple',
    'test2' => 'Lemon',
);
// 初期化
$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  // SSL証明書を検証しない
curl_setopt($ch, CURLOPT_POST, true);             // POSTメッソッドを使用
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);     // リクエストパラメータを指定

// リクエストを実行
$res = curl_exec($ch);
curl_close($ch);

echo "<pre>";
var_dump($res);
echo "</pre>";
終わり

2012/01/14

【Firefox】UserAgentを切り替えるアドオン UserAgentSwitcherをインストールする

今回はスマートフォンようWebサイトを作成した際に使用したFirefoxのアドオン
「UserAgentSwitcher」のことについてメモしておきます。

まず、「UserAgentSwitcher」とはUserAgentを切り替えられるアドオンです。
UserAgentの説明は割愛します。

インストールはこちらから行います。

インストールが完了したら再起動します。

再起動後
[ツール] -> [アドオン] -> [拡張機能]より「UserAgentSwitcher」の設定を
選択します。

「UserAgentSwitcher」は初期状態では3つほどしかUserAgentの情報が入っていないので
自分で設定を追加する必要があります。

UserAgentの追加がめんどうなのでこちらのブログでインポート用のXMLが公開されていますので
こちらからダウンロードします。

我流天性 がらくた屋

ダウンロードしたらまた、
[ツール] -> [アドオン] -> [拡張機能]より「UserAgentSwitcher」の設定を
選択し、Importボタンをクリックします。

これに先ほどダウンロードしたXMLを選択すれば、大量にUserAgentが追加されます。

終わり

2012/01/11

【PHP】PHPのexec関数

ということで今回はexecコマンドについてのメモです。

まず、同期をとっての実行方法です。
exec('コマンド');
コマンドにはシステムコマンド(ls)とかファイルパスだったりを指定できます。 第二引数に変数を指定することにより、コマンドの結果を取得できます。 この際取得できる結果は1行ごとに配列になります。 例えば結果が
dr-xr-xr-x    2 root  wheel      512 Jan  1  2009 proc
drwxr-xr-x    2 root  wheel     2560 Sep 24  2010 rescue
drwxr-x---    5 root  wheel      512 Aug  2  2010 root
だとすると
array(
    0 => 'dr-xr-xr-x    2 root  wheel      512 Jan  1  2009 proc',
    1 => 'drwxr-xr-x    2 root  wheel     2560 Sep 24  2010 rescue',
    2 => 'drwxr-x---    5 root  wheel      512 Aug  2  2010 root',
);
このように結果が返却されます。 次に、非同期で実行する場合
exec('コマンド > dev/null &');
上記の様に記述することで非同期でコマンドを実行することができます。 コマンドの結果をdev/nullにリダイレクトしています。 また dev/null とは、Unixシステム上での スペシャルファイルで、常に空であるファイルです。 最後に &をつけバックグラウンドで実行するようにします。 これでバックグラウンドでPHPを実行したりシェルスクリプトを実行したりできます。 また、コマンドを使用する際は「escapeshellcmd関数」でエスケープします。 終わり 【追記】:2012-03-06 exec関数使用時にescapeshellcmd関数を使うだけでは どうも不十分なようです。 escapeshellcmd関数では、シングルクォート・ダブルクォートともに対になっていないと エスケープされないため意図しない動作が起こる可能性があります。 ですので、引数などはescapeshellarg関数を使用して引数ごとに エスケープを行った方がパラメータの意図しない追加などを防ぐのに有効です。 こちらのブログの記事で詳しく説明されています。 参考: PHPのescapeshellcmdの危険性 - 徳丸浩の日記

2012/01/07

【雑記】新年初給餌【グロ注意】

新年の初給餌写真です。
※グロ注意

今年もよろしくお願いします