PHP関数他探訪2016
-
Upload
satoshi-hirata -
Category
Engineering
-
view
3.459 -
download
1
Transcript of PHP関数他探訪2016
2016/05/21株式会社Fusic 平田 哲
PHP関数他探訪2016
Fusic Co., Ltd.
自己紹介3
平田 哲(HIRATA, Satoshi)id: debilityFusic Co., Ltd.http://fusic.co.jp/Fukuoka.pmProgram, Server, Network, and “Nomikai”
icon: © mutsuking
Fusic Co., Ltd.
三行広告4
Fusic Co., Ltd.
三行広告5
エンジニア募集しています。エンジニア募集しています。エンジニア募集しています。
Fusic Co., Ltd.
このLTについて6
圧倒的な物量を誇るPHPの関数をたまには見直して、愛でる話です。
Fusic Co., Ltd.
重要7
PHP関数他探訪2016
Fusic Co., Ltd.
重要8
PHP関数他探訪2016
Fusic Co., Ltd.
重要9
関数以外も喋ってよし
Fusic Co., Ltd.
このLTについて10
圧倒的な物量を誇るPHPの関数に限らないもろもろをたまには見直して、愛でる話です。
Fusic Co., Ltd.
このLTについて11
圧倒的な物量を誇るPHPの関数に限らないもろもろをたまには見直して、愛でる話です。
Fusic Co., Ltd.
愛でる12
×
Fusic Co., Ltd.
愛でる13
× ○
Fusic Co., Ltd.
愛でる14
× ○ ○
Fusic Co., Ltd.
本日のお品書き15
前菜関数の話関数群の話関数の仕様の話デフォルト設定の話とある.ini変数の話
Fusic Co., Ltd. 16
前菜
Fusic Co., Ltd.
前菜17
https://bugs.php.net/bug.php?id=71585
Fusic Co., Ltd.
Nortonが誤ってPHPを削除する暴挙18
https://bugs.php.net/bug.php?id=71585
php-win.exe deletedby Norton Security
Fusic Co., Ltd.
過去にも19
https://bugs.php.net/bug.php?id=67930
Norton is classifying this release as insecure and is deleted all file dll and exe files.
Fusic Co., Ltd. 20
getimagesize
Fusic Co., Ltd.
getimagesize21
getimagesize(string $filename)画像の大きさをファイル名から取得する
Fusic Co., Ltd.
getimagesize22
getimagesize(string $filename)画像の大きさをファイル名から取得する
list($width, $height, $type, $attr) = getimagesize(“/path/to/image.jpg”);
Fusic Co., Ltd.
getimagesizefromstring23
getimagesizefromstring(string $filename)画像の大きさを文字列から取得する(>=PHP5.4)
Fusic Co., Ltd.
getimagesizefromstring24
getimagesizefromstring(string $filename)画像の大きさを文字列から取得する(>=PHP5.4)
$image = file_get_contents(“/path/to/image.jpg”);
Fusic Co., Ltd.
getimagesizefromstring25
getimagesizefromstring(string $filename)画像の大きさを文字列から取得する(>=PHP5.4)
$image = file_get_contents(“/path/to/image.jpg”);list($width, $height, $type, $attr) =getimagesizefromstring($image);
Fusic Co., Ltd.
getimagesizefromstring26
getimagesizefromstring(string $filename)画像の大きさを文字列から取得する(>=PHP5.4)
$image = file_get_contents(“/path/to/image.jpg”);list($width, $height, $type, $attr) =getimagesizefromstring($image);
長。
Fusic Co., Ltd. 27
is_xxx
Fusic Co., Ltd.
is_xxx28
Fusic Co., Ltd.
is_xxx29
is_array - 変数が配列かどうかを検査するis_bool - 変数が boolean であるかを調べるis_callable - 引数が、関数としてコール可能な構造であるかどうか調べるis_double - is_float のエイリアスis_float - 変数の型が float かどうか調べるis_int - 変数が整数型かどうかを検査するis_integer - is_int のエイリアスis_long - is_int のエイリアスis_null - 変数が NULL かどうか調べるis_numeric - 変数が数字または数値形式の文字列であるかを調べるis_object - 変数がオブジェクトかどうかを検査するis_real - is_float のエイリアスis_resource - 変数がリソースかどうかを調べるis_scalar - 変数がスカラかどうかを調べるis_string - 変数の型が文字列かどうかを調べる
Fusic Co., Ltd.
is_xxx30
is_array - 変数が配列かどうかを検査するis_bool - 変数が boolean であるかを調べるis_callable - 引数が、関数としてコール可能な構造であるかどうか調べるis_double - is_float のエイリアスis_float - 変数の型が float かどうか調べるis_int - 変数が整数型かどうかを検査するis_integer - is_int のエイリアスis_long - is_int のエイリアスis_null - 変数が NULL かどうか調べるis_numeric - 変数が数字または数値形式の文字列であるかを調べるis_object - 変数がオブジェクトかどうかを検査するis_real - is_float のエイリアスis_resource - 変数がリソースかどうかを調べるis_scalar - 変数がスカラかどうかを調べるis_string - 変数の型が文字列かどうかを調べる 多。
Fusic Co., Ltd.
is_xxx31
is_array - 変数が配列かどうかを検査するis_bool - 変数が boolean であるかを調べるis_callable - 引数が、関数としてコール可能な構造であるかどうか調べるis_double - is_float のエイリアスis_float - 変数の型が float かどうか調べるis_int - 変数が整数型かどうかを検査するis_integer - is_int のエイリアスis_long - is_int のエイリアスis_null - 変数が NULL かどうか調べるis_numeric - 変数が数字または数値形式の文字列であるかを調べるis_object - 変数がオブジェクトかどうかを検査するis_real - is_float のエイリアスis_resource - 変数がリソースかどうかを調べるis_scalar - 変数がスカラかどうかを調べるis_string - 変数の型が文字列かどうかを調べる
Fusic Co., Ltd.
xxxval32
Fusic Co., Ltd.
xxxval33
doubleval - floatval のエイリアスfloatval - 変数の float 値を取得するintval - 変数の整数としての値を取得するstrval - 変数の文字列としての値を取得する
Fusic Co., Ltd.
xxxval34
doubleval - floatval のエイリアスfloatval - 変数の float 値を取得するintval - 変数の整数としての値を取得するstrval - 変数の文字列としての値を取得する
boolval - 変数の boolean としての値を取得する※ PHP5.5で追加された関数
Fusic Co., Ltd.
boolval35
echo '0: '.(boolval(0) ? 'true' : 'false')."¥n";echo '42: '.(boolval(42) ? 'true' : 'false')."¥n";echo '0.0: '.(boolval(0.0) ? 'true' : 'false')."¥n";echo '4.2: '.(boolval(4.2) ? 'true' : 'false')."¥n";echo '"": '.(boolval("") ? 'true' : 'false')."¥n";echo '"string": '.(boolval("string") ? 'true' : 'false')."¥n";echo '"0": '.(boolval("0") ? 'true' : 'false')."¥n";echo '"1": '.(boolval("1") ? 'true' : 'false')."¥n";echo '[1, 2]: '.(boolval([1, 2]) ? 'true' : 'false')."¥n";echo '[]: '.(boolval([]) ? 'true' : 'false')."¥n";echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."¥n";
Fusic Co., Ltd.
boolval36
0: false42: true0.0: false4.2: true"": false"string": true"0": false"1": true[1, 2]: true[]: falsestdClass: true
Fusic Co., Ltd.
mt_rand問題37
http://sucrose.hatenablog.com/entry/2016/02/19/235506
「PHP の mt_rand() は一貫して壊れている(consistently broken)らしい」
本来の実装と少しだけ違うメルセンヌツイスタになっている修正のプルリクがmergeされたのちにrevertされる「後方互換性を壊す変更は議論してからmergeすべき」と言う理由
Fusic Co., Ltd.
mt_rand問題38
"Sure it's broken, but at least it's consistently broken!“
Fusic Co., Ltd.
愛でる(おさらい)39
Fusic Co., Ltd.
愛でる(おさらい)40
× ○ ○
Fusic Co., Ltd. 41
default_charset
Fusic Co., Ltd.
default_charset42
PHP >= 5.6.0 で、デフォルトが “UTF-8” になりました。※ PHP < 5.6.0 でのデフォルトは空でした。
Fusic Co., Ltd.
default_charset43
PHP >= 5.6.0 で、デフォルトが “UTF-8” になりました。※ PHP < 5.6.0 でのデフォルトは空でした。
Shift_JISとか、他の文字コードを同居させているような場合に、さっくり文字化けたりします(metaタグで書いていても)。
Fusic Co., Ltd.
default_charset44
PHP >= 5.6.0 で、デフォルトが “UTF-8” になりました。※ PHP < 5.6.0 でのデフォルトは空でした。
Shift_JISとか、他の文字コードを同居させているような場合に、さっくり文字化けたりします(metaタグで書いていても)。
Apacheであれば、.htaccessにphp_value default_charset noneとか書いて回避するといいんじゃないでしょうか。
Fusic Co., Ltd. 45
gc_maxlifetime
Fusic Co., Ltd.
session.gc_maxlifetime46
session.gc_maxlifetimeセッションの保持時間
Fusic Co., Ltd.
session.gc_maxlifetime47
session.gc_maxlifetimeセッションの保持時間デフォルトは1440秒 (=24分)
Fusic Co., Ltd.
session.gc_maxlifetime48
Q. なぜ24分?
Fusic Co., Ltd.
session.gc_maxlifetime49
Q. なぜ24分?A. もともと1440分(=1日)だったのが、単位だけ秒になって数値そのままとの噂
http://stackoverflow.com/questions/14703363/why-is-the-standard-session-lifetime-24-minutes-1440-seconds
Fusic Co., Ltd. 50
まとめ
Fusic Co., Ltd.
まとめ51
PHPに限った話ではないですが。調べてみると新たな発見があって、役に立ったりしますよ。
Fusic Co., Ltd.
まとめ52
PHPに限った話ではないですが。調べてみると新たな発見があって、役に立ったりしますよ。あと、転んでも泣かない。
Fusic Co., Ltd.
まとめ53
PHPに限った話ではないですが。調べてみると新たな発見があって、役に立ったりしますよ。あと、転んでも泣かない。愛でましょう。
Fusic Co., Ltd.
ご清聴ありがとうございました。