生まれたてプログラマの覚書

思いついたときが、更新のとき。

注意してね

当blogを参考に行った行為に対し
一切の責任を負いません。
くれぐれも自己責任でお願いします。

 

また、当blogのコードを使う場合は、コメントを残していただけると、僕のテンションが少しあがります。

最新記事

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

user agentを判別するPHP(ざっくり)

ざっくりユーザエージェントを判別するPHP
ざっくりざっくり!(`・ω・´)


// ユーザエージェント判別
$UA = $_SERVER['HTTP_USER_AGENT'];
$SMART_PHONE = array(
'iPhone',
'iPod',
'Android',
'IEMobile',
'dream',
'CUPCAKE',
'blackberry',
'webOS',
'incognito',
'webmate'
);
$DOCOMO_NO_SSL = array(
"F671i",
"SH251i",
"SH251iS",
"501i",
"502i",
"209i",
"210i",
"821i",
"651i",
"691i"
);
$MOBILE = array(
"DoCoMo",
"J-PHONE",
"Vodafone",
"SoftBank",
"UP.Browser"
);

$DOCOMO_NO_SSL_PATTERN = '/'.implode('|', $DOCOMO_NO_SSL).'/i';
$SMART_PHONE_PATTERN = '/'.implode('|', $SMART_PHONE).'/i';
$MOBILE_PATTERN = '/'.implode('|', $MOBILE).'/i';

// スマートフォン端末
if (preg_match($SMART_PHONE_PATTERN, $UA)) {
echo 'スマホだよ';

// SSL使えないドコモの端末
} elseif (preg_match($DOCOMO_NO_SSL_PATTERN, $UA)) {
echo 'SSLの使えないどこも端末だよ';

// モバイル端末
} elseif (preg_match($MOBILE_PATTERN, $UA)) {
echo 'モバイル端末だよ';

// PC
} else {
echo 'それ以外だよ 多分PCだよ';
}
スポンサーサイト

CSV用にデータを整形するphp関数


/*****************
* 改行を除去
* "(ダブルクォート)を""(ダブルクォートダブルクォート)に変換
* 数値の場合先頭に'(シングルクォートを追加)
*/
function csvSanitize($str)
{
if (is_numeric($str)) $str = "'".$str;
$str = str_replace("\"", "\"\"", $str);
$str = str_replace("\r", "", $str);
$str = str_replace("\n", "", $str);
return $str;
}

Cannot load module 'PDO'

PDO(sqlte)を利用しようとして、とあるサーバで以下のようなエラーが出た。

Cannot load module 'PDO' because required module 'spl' is not loaded in Unknown on line 0

Cannot load module 'SPL' because required module 'simplexml' is not loaded in Unknown on line 0


extension=spl.so
extension=simplexml.so
extension=pdo.so
extension=pdo_sqlite.so

PDOを利用するには、spl.soとsimplesml.soが必要らしく
それらのモジュールを全て有効にすればおk(`・ω・´)

phpでファイルをダウンロードさせる

こんな感じ

function getExtension($filename)
{
$nameAry = explode(".", $filename);
if (!is_array($nameAry)) return false;
return array_pop($nameAry);
}
$ua = $_SERVER['HTTP_USER_AGENT'];
if (ereg("MSIE",$ua)) {
$filename = mb_convert_encoding($filename, "SJIS", "UTF-8");
}
if (getExtension($filename) == "pdf") {
$mime = "application/pdf";
}else {
$mime = "application/octet-stream";
}

header("Pragma: public");
header('Content-Type: '.$mime);;
header("Content-Disposition: inline; filename=$filename");
header("Content-Length: ".filesize($filepath));
readfile($filepath);

ファイル名からざっくりとmimeを判別してみるphp

かなり大雑把


$temp = explode(".", $fileName);
$extension = array_pop($temp);

if (preg_match("/jpeg/i", $extension) || preg_match("/jpg/i", $extension)) {
$mime = "image/jpeg";
} elseif (preg_match("/gif/i", $extension)) {
$mime = "image/gif";
} elseif (preg_match("/png/i", $extension)) {
$mime = "image/png";
} else {
$mime = null;
}

header("Content-Disposition: inline; filename=\"{$fileName}\"");
header("Content-Length: ".filesize($filePath));
if ($mime) header("Content-Type: $mime");
readfile($filePath);

exit;
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。