十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一般这种情境下,在服务器端存储判断,工作量会比较大,对服务器的要求会比较高,可以考虑在客户端设置cookie的方式记录上次访问的时间,当访问时,只需获取cookie 的时间值来进行判断即可,此时不符合记录时间间断的就不记录
成都创新互联专业为企业提供惠济网站建设、惠济做网站、惠济网站设计、惠济网站制作等企业网站建设、网页设计与制作、惠济企业网站模板建站服务,十年惠济做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
http get一下就返回源码了。。比如 url为 target/XX.PHP?V=1
用游览器访问直接下载一个MP3 可以参考如下代码:
?php
$data = file_get_contents('target/XX.PHP?V=1');
file_put_contents('test.mp3', $data, true);
?
Monolog是php下比较全又容易扩展的记录日志组件。目前有包括Symfony 、Laravel、 CakePHP等诸多知名php框架都内置了Monolog。
Monolog可以把你的日志发送到文件,sockets,收件箱,数据库和各种web服务器上。一些特殊的组件可以给你带来特殊的日志策略。
使用例子
1 2 3 4 5 6 7 8 9 10 11 12?php use Monolog/Logger; use Monolog/Handler/StreamHandler; // create a log channel $log = new Logger('name'); $log-pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); // add records to the log $log-addWarning('Foo'); $log-addError('Bar');核心概念
每个Logger实例都有一个通道和日志处理器栈。每当你添加一条日志记录,它会被发送到日志处理器栈。 你可以创建很多Logger,每个Logger定义一个通道(db,请求,路由),每个Logger有很多日志处理器。这些通道会过滤日志。
每个日志处理器都有一个Formatter(内置的日志显示格式处理器)。你还可以设定日志级别。
日志级别
DEBUG:详细的debug信息
INFO:感兴趣的事件。像用户登录,SQL日志
NOTICE:正常但有重大意义的事件。
WARNING:发生异常,使用了已经过时的API。
ERROR:运行时发生了错误,错误需要记录下来并监视,但错误不需要立即处理。
CRITICAL:关键错误,像应用中的组件不可用。
ALETR:需要立即采取措施的错误,像整个网站挂掉了,数据库不可用。这个时候触发器会通过SMS通知你,
php访问url的四种方式
1.fopen方式
//访问指定URL函数
[php] view plain copy
print?
function access_url($url) {
if ($url=='') return false;
$fp = fopen($url, 'r') or exit('Open url faild!');
if($fp){
while(!feof($fp)) {
$file.=fgets($fp)."";
}
fclose($fp);
}
return $file;
}
2.file_get_contents方式(打开远程文件的时候会造成CPU飙升。file_get_contents其实也可以post)
[php] view plain copy
print?
$content = file_get_contents("httttp://w");
3.curl方式
[php] view plain copy
print?
function curl_file_get_contents($durl){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $durl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
4.fsockopen方式(只能获取网站主页信息,其他页面不可以)
[php] view plain copy
print?
$fp = fsockopen("", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)br /\n";
} else {
$out="GET / HTTP/1.1\r\n";
$out.="Host: \r\n";
$out.="Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}