0

我有一些带有参数的 api 模式 url:

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

将参数替换为值的最佳方法是什么,也许有一些魔术类?

提前致谢。

4

2 回答 2

1

我认为你不需要为这样的简单任务使用魔法。

只需用str_replace一些变量值替换“{function}”(在那个“模板”中)。

对于可以是多个的 {parameters},您可以编写一个小函数,将这些参数放入一个变量中,然后像这样:&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 回答
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 回答