在PHP中静默POST一个URL?

时间:2017-06-07 21:57:51

标签: php

我需要使用特定的URL触发警报。 警报脚本应启动/停止/启动/关闭警报5秒钟。我不希望用户从页面重定向。

此脚本应启动/停止警报(使用这些特殊的本地主机URL字符串)。这会有用吗?

?php

/* start alarm for 5 seconds */
echo file_get_contents('http://localhost/cgi-bin/controller.cgi?target=2&control=1');

/* note to user that alarm is on */
echo 'Alarm started...' "<br>";
echo date('h:i:s') . "<br>";

/* alarm off for 5 seconds */
sleep(5);
echo file_get_contents('http://localhost/cgi-bin/controller.cgi?target=2&amp;control=0');

/* alarm on for 5 seconds */
echo date('h:i:s');
echo file_get_contents('http://localhost/cgi-bin/controller.cgi?target=2&amp;control=1');

/* alarm off for 5 seconds */

echo file_get_contents('http://localhost/cgi-bin/controller.cgi?target=2&amp;control=0');

?>

编辑:

抱歉,我忘了添加echo file_get_contents应该加载我不想在页面上打印的整个XML内容。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>http://localhost/cgi-bin/controller.cgi?target=2&amp;control=1</string>
</dict>
</plist>

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您可能需要查看客户端ajax post方法(客户端将是少量的J,它们会调用服务器端而不刷新页面)

答案 1 :(得分:0)

正如已经提到的,最好的选择是让JavaScript调用端点并处理超时。这只是因为从PHP调用它将在正常情况下导致延迟大于加载html页面中任何内容之前所有睡眠的总和。在页面开始呈现之前超过几秒钟的任何延迟通常都是气体人员认为该站点已损坏并且离开或反复按下重新加载按钮以尝试使其工作。

换句话说,这是一次糟糕的用户体验。

Adm:BTW,您可以将file_get_contents的输出分配给变量。你不必回应它。