mb_convert_variables() は連想配列のキーを文字コードを変換しない
2008 年 12 月 30 日mb_convert_variables() は連想配列のキーを文字コードを変換しない
mb_convert_variables() は連想配列のキーを文字コードを変換しない
mb_convert_kana
r 「全角」英字を「半角」に変換します。
R 「半角」英字を「全角」に変換します。
n 「全角」数字を「半角」に変換します。
N 「半角」数字を「全角」に変換します。
a 「全角」英数字を「半角」に変換します。
A 「半角」英数字を「全角」に変換します (”a”, “A” オプションに含まれる文字は、U+0022, U+0027, U+005C, U+007Eを除く U+0021 - U+007E の範囲です)。
s 「全角」スペースを「半角」に変換します(U+3000 -> U+0020)。
S 「半角」スペースを「全角」に変換します(U+0020 -> U+3000)。
k 「全角カタカナ」を「半角カタカナ」に変換します。
K 「半角カタカナ」を「全角カタカナ」に変換します。
h 「全角ひらがな」を「半角カタカナ」に変換します。
H 「半角カタカナ」を「全角ひらがな」に変換します。
c 「全角カタカナ」を「全角ひらがな」に変換します。
C 「全角ひらがな」を「全角カタカナ」に変換します。
V 濁点付きの文字を一文字に変換します。”K”, “H” と共に使用します。
ソЫIX噂浬欺圭構蚕十申曾箪貼能表暴予禄兔
喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭
\が混入する為
if(strstr($val,”\\”)){
$val = stripslashes($val);
}
if(is_array($maker)){
$maker_array = $maker=11;
}else{
$maker_array = (array)$maker;
}
print_r($maker_array);
substr(変数, 0, (strlen(変数)-1) );
echo “1日前” . date(”Y/m/d”,strtotime(”-1 day”));
echo “1ヶ月前” . date(”Y/m/d”,strtotime(”-1 month”));
echo “1年前” . date(”Y/m/d”,strtotime(”-1 year”));
echo “1週間前” . date(”Y/m/d”,strtotime(”-1 week”));
w →ファイルを空にするので注意
大規模サイトの開発・運用ノウハウ GREE編
データ
• 増え続けるデータとアクセスとの闘いの日々
– パフォーマンス
• どんだけ速くデータをとってこられるか
– スケーラビリティ
• データが無限に増え続けてもサーバリソースで問題を解決できるか?
– 似て非なる両者(やることはわりと一緒)
• 当たり前ですが、データは増え続ける一方です
• 増えるペースも増え続けてます
• やることってシンプル
– データベース分割
– インデックス張る
– キャッシュ
• データキャッシュ
• スマートキャッシュ(書きながら命名)
• まとめてみると
• TEXTフィールド分離
• テーブル分離
• テーブル分割
• JOINしない
• 正規化がんばりすぎない
• キャッシュも使いどころを考えてうまいこと…
– Memcacheって、なんか…だめ
• そもそもアプリケーションをなんとか…(SNSっていろいろ面倒)
– 「ともだちの~」とかACLとか
• 最近はネットワークトラフィックが馬鹿にならないです
大規模サイトの開発・運用ノウハウ GREE編
bootstrapファイル
– ディレクトリが増えてきて、構造が複雑になってくると
– 「あれ?この定数ってここでつかっていいんだっけ?」
– 「あれ?このメソッドってここで呼んでいいんだっけ?」
– とかとか出てきます
• だったらrequice_onceしとけばいいじゃん
– 50,000 filesもあると、require_onceのコストも馬鹿になりません(もちろんeacceleratorと
か入れてますが - ちなみにコンパイルキャッシュを切ると相当遅いです)
– ということでbootstrapファイルとrequireのルール作り
src/Gree_Bootstrap.php
– 全サービス共通の定数
• define(‘PATH_ROOT’, dirname(dirname(__FILE__)));
– とかいうパス定義とか
– 絶対使うだろー、的なファイルのrequire
• require_once PATH_SRC_CLASS . ‘Gree/Util.php’;
– とか
• でもって
– 各frontend以下の値は、各frontend毎に勝手に(但しfrontend間の依存は原則禁止)
– 各service以下のクラス、定数等はgetService(‘service’)を通じて
– src以下のクラスライブラリはbootstrapでrequireされているもの以外は適宜require
• ってなルールです(書きながら決めた)
PHPカンファレンス2007
http://www.php.gr.jp/seminar/20070901/prog.php