cat data.txt | php exec.php
2013年12月3日火曜日
2013年11月5日火曜日
PHP から Google のハングアウトへメッセージを送信する
XMPPHP という非常に便利なライブラリが有るので、使わせてもらう。
ダウンロードして解凍したら、XMPPHPディレクトリを以下のスクリプトを同じ階層に置いて使う。
ハングアウトに限らず XMPP に対応したアプリなら連携できるはず。
ダウンロードして解凍したら、XMPPHPディレクトリを以下のスクリプトを同じ階層に置いて使う。
<?php
include 'XMPPHP/XMPP.php';
$conn = new XMPPHP_XMPP(
'talk.google.com', # ホスト
5222, # ポート
'username', # 送信者のアカウント
'password', # 送信者のパスワード
'xmpphp', # リソース
'gmail.com', # サーバ(省略するとホストが使用される)
$printlog=false, # ログをプリントするか
$loglevel=XMPPHP_Log::LEVEL_INFO # ログレベル
# LEVEL_ERROR, LEVEL_WARNING, LEVEL_INFO, LEVEL_DEBUG, LEVEL_VERBOSE
);
try {
$conn->connect();
$conn->processUntil('session_start');
$conn->presence();
$conn->message('hogefuga@gmail.com', 'Hello, world!');
$conn->disconnect();
} catch (XMPPHP_Exception $e) {
die($e->getMessage());
}
ハングアウトに限らず XMPP に対応したアプリなら連携できるはず。
2013年4月12日金曜日
PHPとVB.NETでデータを加工してやり取りする
生データが嫌だけどお手軽にやりたいならビット反転して送るとか。
PHP側
VB.NET側
PHP側
$filename = "hoge.txt";
if ($handle = fopen($filename, "r")) {
while (!feof($handle)) {
$s = fread($handle, 1024);
echo ~$s;
}
}
fclose($handle);
VB.NET側
Dim filename As String = "hoge.txt";
Dim contents As String = "";
Dim bs(1024 - 1) As Byte
Dim readSize As Integer
Dim fs As New System.IO.FileStream(filename, IO.FileMode.Open, IO.FileAccess.Read)
While True
readSize = fs.Read(bs, 0, bs.Length)
If readSize = 0 Then
Exit While
End If
For i As Integer = 0 To bs.Length
bs(i) = Not bs(i)
Next
contents += System.Text.Encoding.UTF8.GetString(bs)
End While
fs.Close()
PHPでマルチバイトを含んだディレクトリのリストアップ
PHPでディレクトリをリストアップして、aタグでパラメータとして渡せるようにしてみる。
<?php
$dir = "/hoge/fuga";
if (isset($_REQUEST["dir"]) && $_REQUEST["dir"]) {
$dir = mb_convert_encoding($_REQUEST["dir"], "SJIS", "UTF-8");
}
$html = "";
if ($dh = opendir($dir)) {
while ($entry = readdir($dh)) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $entry) && $entry !== "." && $entry !== "..") {
$html .=
"<a href=\"dir.php?dir=" . urlencode(mb_convert_encoding($entry, "UTF-8", "SJIS")) . "\">" .
mb_convert_encoding($entry, , "UTF-8", "SJIS") .
"</a><br />";
}
}
}
?><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php echo $html; ?>
</body>
</html>
PHPでユーザーエージェント判別
$ua = $_SERVER['HTTP_USER_AGENT'];
switch (true) {
case (preg_match('/iPhone|iPad/', $ua)):
// iOS
break;
case (preg_match('/Android/', $ua)):
// Android
break;
case (preg_match('/MSIE 6/', $ua)):
// IE6
break;
case (preg_match('/MSIE 7/', $ua)):
// IE7
break;
case (preg_match('/MSIE 8/', $ua)):
// IE8
break;
case (preg_match('/MSIE 9/', $ua)):
// IE9
break;
case (preg_match('/Firefox/', $ua)):
// Firefox
break;
case (preg_match('/Chrome/', $ua)):
// Chrome
break;
case (preg_match('/Opera/', $ua)):
// Chrome
break;
case (preg_match("/Safari/", $agent)) && (preg_match("/Win/", $agent)):
// Windows Safari
break;
case (preg_match("/Safari/", $agent)) && (preg_match("/Mac/", $agent)):
// Mac Safari
break;
case ((preg_match("/MSIE/", $agent)) && (preg_match("/Win/", $agent))):
// Windows IE
break;
case ((preg_match("/MSIE/", $agent)) && (preg_match("/Mac/", $agen))):
// Mac IE
break;
default:
// Other
break;
}
登録:
投稿 (Atom)