标签 diandian 下的文章

linux中编译安装jpeg报错make: ./libtool: Command not found

linux中编译安装jpeg-6b报错 make: ./libtool: Command not found

测试环境: centos 6.3 64bit

出错原因:libtool版本过低

解决:

  • rpm -qa |grep libtool查看版本
rpm -e libtool卸载libtool
  • 重新下载libtool默认安装
./configure
make
make install
  • 再次进入jpeg-6b的解压目录
    PS:这个路径是我亲测成功的
cp /usr/local/share/libtool/config/config.sub .
cp /usr/local/share/libtool/config/config.guess .
 ./configure --enable-shared --enable-static
make
mkdir -p /usr/local/man/man1
make install

PS:网上也有说从cp这个路径:

cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .

Linux中在crond里使用tar的注意事项

问题:

平常使用tar打包习惯了tar -czvf ,我写了一个简单的备份脚本,然后添加在计划任务中,结果总是只打包了目标目录的一个子目录

解决:

左思右想,前后检查,才发现问题出在tar的参数上,去掉脚本中的-v,问题解决

  • -v :压缩的过程中显示文件!

说明:

这个命令虽然很常用,但却不适合用于后台执行的程序中
C4952D0CE0A70B32FD8DC66AE796788C_B500_900_500_49.jpeg

jsonp使用笔记

jsonp是ajax跨域调用使用的格式,直接贴代码

js部分:

$.ajax({
    type:'GET',
    url:'http://www.2niu.net/jsonp.php',
    dataType:'jsonp',
    data:'a=b',
    jsonp:'callbackk',
    success:function(res){
        if(res){
            alert('ok!');
            alert(res.a);
        }else{
            alert('no!');
        }
    }
})

或者:

$.getJSON('http://www.2niu.net/jsonp.php?callbackk=?',function(res){
    alert('ok');
    alert(res.a);
})

ps:重点是参数callbackk

php部分:

$result = array('a'=>'aaa','b'=>'bbb');
$res = json_encode($result);

$callback = $_GET['callbackk'];

echo $callback . "($res)";

Strict Standards: Non-static method ... 错误的解决办法

错误提示:

Strict Standards: Non-static method xxx() should not be called statically

原因

使用了self的静态方式调用了方法,但方法没有定义静态static

解决办法:

修改被调用方法为公共静态方法,即:

public static function xxx(){...}

禁止php执行linux系统命令

  • 多命令如 shell_execsystempassthrupopen 等都是系统相关的合作,如果虚拟主机开放给使用者使用,或是在系统权限没设定完整的情况下,必然会造成很大的伤害;同时网站在有漏洞的情况下,也会对服务器造成很大伤害

  • 要达到这个需求,只要在 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 curl获取内容

因为php原生函数file_get_contents()无发获取https协议头的url内容(需要mod_ssl的支持,或安装opensll

  • windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了。
  • linux下的PHP,就必须安装openssl模块,安装好了以后就可以访问了。
  • 使用curl模块获取url的封装函数如下:
    /**
     * 抓取的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;
    }