パラメータ付きのAPIパターンURLがあります:
http://api.example.com/{type}/{function}?{parameters}&lang={lang}&authkey={authkey}&username={username}
パラメータを値に置き換える最良の方法は何ですか?おそらくいくつかの魔法のクラスがありますか?
前もって感謝します。
配列でstr_replaceを実行できます。
$end_point = 'http://api.example.com/{type}/{function}?{parameters}&lang={lang}&authkey={authkey}&username={username}';
$tokens = array(
'{type}',
'{function}',
'{lang}',
'{authkey}',
'{username}',
);
$values = array(
'typeval',
'func_name',
'en-US',
'abra-kadabra',
'parrotlover',
);
if (count($tokens) == count($values)) { // just to make sure every item is present. Not necessary.
$end_point = str_replace($tokens, $values, $end_point);
}
このような単純な作業に魔法を使う必要はないと思います。
str_replace
「{function}」(その「テンプレート」内)を変数値に置き換えるために使用するだけです。
{parameters} の場合、複数になる可能性があります。これらのパラメーターを 1 つの変数に入れ、次のようなものを作成する小さな関数を作成できます。次のような¶m_1=value1¶m_2=value2
配列から:$parameters = array("param_1" => "value 1", "param_2 => "value 2");
多分このようなもの:
function parameters_to_str($params)
{
foreach(with keys as parameter names)
{
$ret_val = $ret_val."&".$key."=".$value;
}
return $ret_val;
}
... etc.
理解していただければ幸いです。