我有一些带有参数的 api 模式 url:
http://api.example.com/{type}/{function}?{parameters}&lang={lang}&authkey={authkey}&username={username}
将参数替换为值的最佳方法是什么,也许有一些魔术类?
提前致谢。
我认为你不需要为这样的简单任务使用魔法。
只需用str_replace
一些变量值替换“{function}”(在那个“模板”中)。
对于可以是多个的 {parameters},您可以编写一个小函数,将这些参数放入一个变量中,然后像这样:¶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.
我希望你能明白。
您可以 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);
}