0

パラメータ付きのAPIパターンURLがあります:

http://api.example.com/{type}/{function}?{parameters}&lang={lang}&authkey={authkey}&username={username}

パラメータを値に置き換える最良の方法は何ですか?おそらくいくつかの魔法のクラスがありますか?

前もって感謝します。

4

2 に答える 2

1

配列で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);
}
于 2013-01-27T02:18:22.720 に答える
1

このような単純な作業に魔法を使う必要はないと思います。

str_replace「{function}」(その「テンプレート」内)を変数値に置き換えるために使用するだけです。

{parameters} の場合、複数になる可能性があります。これらのパラメーターを 1 つの変数に入れ、次のようなものを作成する小さな関数を作成できます。次のような&param_1=value1&param_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.

理解していただければ幸いです。

于 2013-01-27T02:08:40.233 に答える