我想在PHPAGI中使用一个星号函数"IFTIME“。以下语法在Dialplan中运行正确,但我一直在尝试使其在PHPAGI中运行。
exten => 1234,1,Set(foo=${IFTIME(16:00-21:00,*,*,*?true:false)})
exten => 1234,2,NoOp(${foo})到目前为止,在PHPAGI中,我所做的是
**我正在使用AGISPEEDY框架,它使用PHPAGI
$agi->agi_exec('Set','fo o=${IFTIME(*,*,*,*?true:false)}');
$result = $agi->get_variable('foo');
$agi->verbose($result);-结果
Array(
[code] => 200
[result] => 1
[data] => ${IFTIME(*,*,*,*?true:false)}
)上面的命令将函数设置为字符串。我试着改变
这个:$agi->agi_exec('Set','foo=${IFTIME(*,*,*,*?true:false)}');
收件人:$agi->set_variable('foo','${IFTIME(*,*,*,*?true:false)}');
但结果是一样的,它将${IFTIME(*,*,*,*?true:false)}保存为字符串。
任何关于如何从PHPAGI运行像IFTIME这样的星号函数的帮助都将不胜感激。
发布于 2015-11-12 00:29:57
如果您使用函数,则必须使用get_full_variable。
发布于 2015-11-24 05:19:53
你试图通过在火星上着陆一艘火箭船来飞向月球,你所做的是毫无意义的。
您已经在PHP脚本中了,只需在PHP中模拟相同的IFTIME检查即可。因此,在您的示例中,我将把agi_exec命令替换为以下内容:
$current_timestamp = time();
$current_time = (int)date("Hi", $current_timestamp);
if (($current_time > 1600) && ($current_time < 2100)) {
.. Do some cool PHP here ..
}这个片段没有经过调试,所以它可能不会像您想象的那样工作,但您已经明白了这一点。
PHPAGI和AGI通常都是很棒的工具-如果使用得当的话。您正在尝试利用Dialplan函数/应用程序来执行一些通常在PHP中执行的操作。
https://stackoverflow.com/questions/33649537
复制相似问题