Skip to content

Instantly share code, notes, and snippets.

View uzulla's full-sized avatar
🚧
WORK,WORK,WORK.

uzulla / Junichi Ishida uzulla

🚧
WORK,WORK,WORK.
View GitHub Profile
<?php
$foo = 'ふー';
$bar = 'ばー';
$func1 = generate($foo,$bar);
// $app->get($key, generate($foo, $bar));
$foo = "FOOO!!!";
@uzulla
uzulla / jabai.php
Created April 3, 2014 13:20
PHP無名関数(クロージャ)の$thisをあとからかきかえるやつ
<?php
class world {
public $v;
public function main(){
$this->v = 'じゃばい';
$f = function(){
echo $this->v;
};
@uzulla
uzulla / guard.php
Created April 1, 2014 12:55
PHPで、いわゆるPerlのGuard(ブロックを抜けたら実行するコードを前もって動的に設定する)をやる。 see also http://search.cpan.org/~mlehmann/Guard-1.022/Guard.pm
<?php
class Guard{
public $destruct;
public function __construct($callable){
$this->destruct = $callable;
}
public function __destruct(){
call_user_func($this->destruct);
}
}
@uzulla
uzulla / ThumbnailImageMaker.php
Last active August 29, 2015 13:57
あるライブラリと一部機能のサブセット互換のサムネイル生成ライブラリ(これくらいちがってたらGPL違反にならないですかね???)参考:http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
<?php
/**
* ThumbnailImageMaker
*
* require GD
*
* @author Junichi Ishida <uzulla@himitsukichi.com>
* @license MIT License
* @version v0.0.1
@uzulla
uzulla / funny.php
Created March 9, 2014 08:57
「継承できるテンプレートとは」(ネタです)
<?php
class Mother {
static $html = '
<html>
<body>
{{content}}
</body>
</html>
';
public function __construct($my_name=null, $var=null){
@uzulla
uzulla / match_test.php
Created January 28, 2014 13:14
WAFのRouterなどで、'/test/:hoge/'とか指定してルートを登録するときそれを正規表現にコンパイルするやつ http://uzulla.hateblo.jp/entry/2014/01/28/215038
<?php
$pattern = '/test/:id/';
$regexPattern = preg_replace_callback(
'#:([\w]+)#',
function($m){
return '(?P<'.$m[1].'>[^/]+)';
},
$pattern
);
@uzulla
uzulla / getip.php
Created January 22, 2014 20:57
get REMOTE_ADDR (ip address)
public function getRemoteIP(){
$_SERVER_UC = array_change_key_case($_SERVER, CASE_UPPER);
if(isset($_SERVER_UC['HTTP_CLIENT_IP']))
return $_SERVER_UC['HTTP_CLIENT_IP'];
if(isset($_SERVER_UC['HTTP_X_CLUSTER_CLIENT_IP']))
return $_SERVER_UC['HTTP_X_CLUSTER_CLIENT_IP'];
if(isset($_SERVER_UC['HTTP_FORWARDED_FOR']))
return $_SERVER_UC['HTTP_FORWARDED_FOR'];
@uzulla
uzulla / emlx_format
Created January 13, 2014 02:29
mac mail.appでつかわれたりするemlxフォーマットのメモ、 自分で調べた物なので、信用性は薄い
基本的にはemlフォーマット(メールのソースである)
改行コードはどうやらLFである
一行目にメールソースの長さが入る、
つまり後述のXMLが開始するまでのバイト数、ただし先頭の数字(サイズ)の行を除く
なので、ボディサイズをいきなりカウントして、
その数字を先頭にいれて、ボディをいれて、XMLをつっこめばよい。
@uzulla
uzulla / composer.json
Created January 5, 2014 22:53
夜中に唐突に国と戦車の名前一覧がすっげーほしくなったときにつかう。 PHP Goutto のサンプル
{
"require": {
"fabpot/goutte": "dev-master"
}
}
@uzulla
uzulla / strict_die_on_error.php
Created January 3, 2014 15:52
小石に当たっても絶対に死ぬためのコード。 E_WARNINGでも、E_NOTICEでも、E_STRICTでも、E_DEPRECATEDでも死ぬ。
<?php
// strict error bailout
set_error_handler(function ($errno, $errstr, $errfile, $errline){
error_log("STRICT: {$errno} {$errstr} {$errfile} {$errline} ");
die("get error on: errno:{$errno} file:{$errfile}:{$errline}");
});
echo $a; // undefined value
echo "I will die";