我一直在查看多个问题,但我并不太了解(因为我所知道的PHP中的所有内容都是联系表单和基本内容),这似乎是类似的问题。
我只需要一个php脚本在服务器端运行并运行jquery脚本每个' x'分钟......在jquery中,我可以简单地设置一个间隔,但是如果页面没有被访问并且我希望它能够连续运行,它将无法运行。
如果你愿意请耐心地举一个例子,也许可以解释一下原理......谢谢
答案 0 :(得分:1)
根据您的评论,您想要查看网站是否在线,或者不在这里作为一个小例子:
ini_set("default_socket_timeout","05");//see 1)
set_time_limit(5); //see 1)
$f=fopen("http://www.example.com","r"); //see 2)
$r=fread($f,1000); //see 3)
fclose($f); // see 4)
if(strlen($r)>1) { //see 5)
echo "<span class='online'>Online</span>";
}
else {
echo "<span class='offline'>Offline</span>";
}
备注强>
1)将stream-timeout设置为5秒。如果站点处于脱机状态,则应直接发送响应,因此无需长时间检查
2)打开网址(仅读取)
3)读取opend url(二进制)
的前1000个charaktars4)关闭连接
5)检查数据是否可以被加入。如果存在数据,则可以打开网站
要安装执行php脚本的cronjob,您可以使用:
1 * * * * /usr/bin/wget -q -O /var/log/website_check.log http://www.webiste.com/pathTo/check.php
这将在每个via wget
执行你的php脚本,并将输出写入日志文件。
请检查cron的路径,它们可能在您的服务器上有所不同。 php脚本的url也可以更改为绝对路径。 (例如var/www/webroot/check.php
)
答案 1 :(得分:1)
需要做的是验证网站/网页是否已启动。
没有必要运行一个运行一个运行php脚本的wget的cron作业!如果你可以运行一个cron作业,我会假设你在unix服务器上并且可以使用bash脚本(win-bash也可能在windows上运行但我不熟悉)
serverfault.com上有一个很好的主题,它正在寻找几乎相同的东西:script to automatically test if a web site is available。
和一个可以轻松自定义以执行所需操作的脚本:
#! /usr/bin/sh
function check {
if [ $? -ne 0 ] ; then
echo "Error occurred getting URL $1:"
if [ $? -eq 6 ]; then
echo "Unable to resolve host"
fi
if [$? -eq 7 ]; then
echo "Unable to connect to host"
fi
exit 1
fi
}
curl -s -o "/dev/null" $1
check;
来自http://answers.google.com/answers/threadview/id/276934.html用户的脚本和额外信息:wengland-ga
简而言之,使用HTTP URL调用脚本进行检查。卷曲会 默默地尝试获取文件并将其发送到/ dev / null。如果失败了, 它将设置退出代码,在“检查”功能中进行检查。
您可能必须使用curl参数才能使其工作正常 你想要它。您还可以将curl输出重定向到临时文件, 并使用grep和filesize检查以确保内容正确。 有关详细信息,请阅读手册页。
搜索策略:
男人卷曲 ://www.google.com/search HL = EN&安培; LR =&安培,即= ISO-8859-1&安培; Q =男人+卷曲&安培; btnG =谷歌搜索+bash检查退出代码 ?://www.google.com/search Q = bash的+校验+退出+代码&安培; SA =谷歌搜索+
bash + if语法 ://www.google.com/search Q = bash的+%2Bif +语法&安培; HL = EN&安培; LR =&安培,即= UTF-8和;开始= 10安培; SA = N
这是一点点阅读,但这就是我这样做的方式(我觉得它没有任何过度杀伤)
在某些服务器上,可能未安装curl,因此您必须安装它