Strict Standards: Non-static method ... 错误的解决办法
错误提示:
Strict Standards: Non-static method xxx() should not be called statically
原因
使用了self的静态方式调用了方法,但方法没有定义静态static
解决办法:
修改被调用方法为公共静态方法,即:
public static function xxx(){...}
Strict Standards: Non-static method xxx() should not be called statically
使用了self的静态方式调用了方法,但方法没有定义静态static
修改被调用方法为公共静态方法,即:
public static function xxx(){...}
多命令如 shell_exec、system、passthru、popen 等都是系统相关的合作,如果虚拟主机开放给使用者使用,或是在系统权限没设定完整的情况下,必然会造成很大的伤害;同时网站在有漏洞的情况下,也会对服务器造成很大伤害
要达到这个需求,只要在 php.ini 里设定 disble_function 这个选项就能设定禁止执行的指令了。
disble_function = phpinfo
disble_function = shell_exec, system, passthru, popen
disable_functions = shell_exec,system,exec,passthru,show_source,get_cfg_var
因为php原生函数file_get_contents()无发获取https协议头的url内容(需要mod_ssl的支持,或安装opensll)
extension=php_openssl.dll前面的;删掉,重启服务就可以了。openssl模块,安装好了以后就可以访问了。 /**
* 抓取的url链接内容
* @param string $url 要抓取的url链接,可以是http,https链接
* @param int $second 设置cURL允许执行的最长秒数
* @return mixed
*/
function get_curl_contents($url, $second = 30)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_TIMEOUT,$second);//设置cURL允许执行的最长秒数
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);//当此项为true时,curl_exec($ch)返回的是内容;为false时,curl_exec($ch)返回的是true/false
//以下两项设置为FALSE时,$url可以为"https://login.yahoo.com"协议
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
200 服务器成功返回网页404 请求的网页不存在503 服务器超时1xx(临时响应)100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功)200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt文件显示此状态码,则表示 Googlebot 已成功检索到该文件。201(已创建) 请求成功并且服务器创建了新的资源。202(已接受) 服务器已接受请求,但尚未处理。203(非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。204(无内容) 服务器成功处理了请求,但没有返回任何内容。205(重置内容) 服务器成功处理了请求,但没有返回任何内容。与 204响应不同,此响应要求请求者重置文档视图(例如,清除表单内容以输入新内容)。206(部分内容) 服务器成功处理了部分 GET 请求。3xx (重定向)300(多种选择) 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent)选择一项操作,或提供操作列表供请求者选择。301(永久移动) 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD请求的响应)时,会自动将请求者转到新位置。您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置。302(临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。303(查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。对于除 HEAD之外的所有请求,服务器会自动转到其他位置。304(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP标头)。服务器可以告诉 Googlebot 自从上次抓取后网页没有变更,进而节省带宽和开销。305(使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。307(临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。4xx(请求错误)400(错误请求) 服务器不理解请求的语法。401(未授权) 请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。403(禁止)服务器拒绝请求。如果您在 Googlebot 尝试抓取您网站上的有效网页时看到此状态码(您可以在 Google网站管理员工具诊断下的网络抓取页面上看到此信息),可能是您的服务器或主机拒绝了 Googlebot 访问。404(未找到)服务器找不到请求的网页。405(方法禁用)禁用请求中指定的方法。406(不接受)无法使用请求的内容特性响应请求的网页。407(需要代理授权)此状态码与401(未授权)类似,但指定请求者应当授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理。408(请求超时)服务器等候请求时发生超时。409(冲突)服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT请求时可能会返回此代码,以及两个请求的差异列表。410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。该代码与404(未找到)代码类似,但在资源以前存在而现在不存在的情况下,有时会用来替代 404 代码。如果资源已永久移动,您应使用 301指定资源的新位置。411(需要有效长度)服务器不接受不含有效内容长度标头字段的请求。412(未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件。413(请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。414(请求的 URI 过长)请求的 URI(通常为网址)过长,服务器无法处理。415(不支持的媒体类型)请求的格式不受请求页面的支持。416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态码。417(未满足期望值)服务器未满足"期望"请求标头字段的要求。5xx(服务器错误)500(服务器内部错误)服务器遇到错误,无法完成请求。501(尚未实施)服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。503(服务不可用)服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。504(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。505(HTTP 版本不受支持)服务器不支持请求中所用的 HTTP 协议版本。原文转自:http://blog.sina.com.cn/s/blog_6c4b32b001013p1t.html,仅为学习分享所用
<?php
$now_time = time();
$date=date("Y-m-d",$now_time);
function get_date($date,$t='d',$n=0)
{
if($t=='d'){
$firstday = date('Y-m-d 00:00:00',strtotime("$n day"));
$lastday = date("Y-m-d 23:59:59",strtotime("$n day"));
}elseif($t=='w'){
if($n!=0){$date = date('Y-m-d',strtotime("$n week"));}
$lastday = date("Y-m-d 00:00:00",strtotime("$date Sunday"));
$firstday = date("Y-m-d 23:59:59",strtotime("$lastday -6 days"));
}elseif($t=='m'){
if($n!=0){$date = date('Y-m-d',strtotime("$n months"));}
$firstday = date("Y-m-01 00:00:00",strtotime($date));
$lastday = date("Y-m-d 23:59:59",strtotime("$firstday +1 month -1 day"));
}
return array($firstday,$lastday);
}
$day1 = get_date($date,'d');
$day2 = get_date($date,'d',-1);
$week1 = get_date($date,'w');
$week2 = get_date($date,'w',-1);
$month1 = get_date($date,'m');
$month2 = get_date($date,'m',-1);
echo '<pre>';
print_r($day1);//今天
print_r($day2);//昨天
print_r($week1);//这周
print_r($week2);//上周
print_r($month1);//这月
print_r($month2);//上月
echo '</pre>';
仅限于正序数组
//二分查找
function bin_search($arr,$n){
$start=0;
$end=count($arr)-1;
while($start<=$end){
$mid=intval(($start+$end)/2);
if($arr[$mid]==$n){
return $mid;
}else if($n > $arr[$mid]){
$start=$mid+1;
}else{
$end=$mid-1;
}
}
}
$arr=array(3,4,5,7,9,10);
//$arr=array(23,14,10,7,5,3);
echo bin_search($arr,7);//查找7是第几个成员
公鸡3元每只,母鸡5元每只,小鸡1元3只,一百元钱买一百只鸡,请用伪代码写出求公鸡,母鸡和小鸡的数目
//$x公鸡数量;$y母鸡数量;$z小鸡数量
for($x=1;$x<30;$x++){
for($y=1;$y<20;$y++){
$z=(100 - 3*$x - 5*$y) * 3;
if($x + $y + $z == 100){
echo $x .':'. $y .':'. $z .'<br>';
}
}
}
4:12:84
11:8:81
18:4:78
//定义一个函数,用于获取指定class属性的节点
function fun(classname){
var list = new Array();
var nodelist = document.getElementsByTagName("*");
//获取当前文档的所有节点
for(var i=0;i<nodelist.length;i++){
if(nodelist[i].className==classname){
list[list.length]=nodelist[i];
}
}
return list;
}
//冒泡排序法
//外层n-1,内层n-$i-1
function mySort($arr){
$n=count($arr);
for($i=0;$i<$n-1;$i++){
for($j=0;$j<$n-1-$i;$j++){
if($arr[$j]['score']>$arr[$j+1]['score']){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
return $arr;
}
开机按e
弹出列表中的三个选择项
选中第二个,按e
在显示的命令行后,输入 空格+single
再按esc返回到列表
按b重启
su root
切换到root
passwd
输入新密码和重复输入新密码