文字列内のワイルドカードを読み取ることができる API 要求ハンドラーを作成しようとしています。理想はこんな感じです。
$myClass->httpGet('/account/[account_id]/list-prefs', function ($account_id) {
// Do something with $account_id
});
[account_id]
ワイルドカードはどこ?実際の URI は次のようになります。
http://api.example.com/account/123456/list-prefs
実際の機能は次のようになります...
function httpGet($resource, $callback) {
$URI = urldecode(str_replace('/'.$this->API_VERSION, '', $_SERVER['REQUEST_URI']));
$match = preg_match_all('/\[([a-zA-Z0-9_]+)\]/', $resource, $array);
if ($resource /*matches with wildcards*/ $URI) {
// Do something with it.
}
...
}
私の問題は...
- コールバックを呼び出すために、関数内の文字列を URI と一致させる方法がわかりません。
- URI で指定された値を使用して文字列を解析する方法 ([account_id] を 123456 に置き換えます)。