PHPCMS V9远程附件上传的一个FTP上传处理类

phpcms V9远程附件上传的一个ftp上传处理类

贴出一个PHPCMS V9里面的一个FTP处理类,大致讲讲怎么实现远程附件的实现。

这个类大致使用方法:

  首先通过 $ftps->connect($host,$username,$password,$post,$pasv,$ssl,$timeout);进行FTP服务器连接。

  通过具体的函数进行FTP的操作。

   $ftps->mkdir() 创建目录,可以创建多级目录以“/abc/def/higk”的形式进行多级目录的创建。

   $ftps->put()上传文件

   $ftps->rmdir()删除目录

   $ftps->f_delete()删除文件

   $ftps->nlist()列出指定目录的文件

   $ftps->chdir()变更当前文件夹

   $ftps->get_error()获取错误信息

» 阅读全文

关键词: phpcms , 远程附件上传 , ftp上传

Mcrypt拓展的带密钥PHP加密和解密算法

mcrypt的优点不仅仅在于其提供的加密算法较多,在windows下随PHP包一起发布,还在于它可以对数据进行加/解密处理,此外,它还提供了包括DES算法在内的35种处理数据用的函数。

/**
 * Mcrypt 加密/解密
 * @param type $date 要加密和解密的数据
 * @param type $key 密钥
 * @param type $mode  encode 默认为加密/decode 为解密
 * @return type
 */
function authCrypt($date, $key , $mode = 'encode') {
    if ($mode == 'decode') {
        $date = base64_decode($date);
    }
    if (function_exists('mcrypt_create_iv')) {
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    }
    if (isset($iv) && $mode == 'encode') {
        $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv);
    } elseif (isset($iv) && $mode == 'decode') {
        $passcrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv);
    }
    if ($mode == 'encode') {
        $passcrypt = base64_encode($passcrypt);
    }
    return $passcrypt;
}

关键词: mcrypt , 解密算法 , php加密

Mysql实现文章查询上一篇和下一篇功能,附sql语句?

mysql实现文章查询上一篇和下一篇功能,附sql语句?

最近在做一个项目用到的文章查询上一篇和下一篇功能,详见:http://www.yifen5.com

Mysql实现文章查询上一篇和下一篇功能,sql语句:

(select * from articles where id < #id# order by id desc limit 1)
union all 
(select * from articles where id > #id# order by id limit 1)

OK,网上大部分都是这么干的,效率上的话,包子强烈建议不要 select * 之类的,效率与指定的几个字段效率有点区别。

关键词: sql语句 , mysql

又一道PHP面试过程中的基础陷阱题

基础陷阱题:
<?php
$a=3;
$b=6;
if($a=5||$b=7){
    $a++;  
    $b++;
}
var_dump($a, $b);
1陷阱一
把$a=5、$b=7看成了$a==5、$b==7
错误结果:3,6

» 阅读全文

关键词: php面试

PHP采集利器:phpQuery,像jQuery一样轻松采集内容

phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大 xpath选 择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便。那为什么不直接使用呢?这个,去看一下官网的函数列表 就知道了,如果 对自己的记忆力很有信心, 不妨一试。

几个简单的例子

获取蓝色理想最热的招聘职位

<?     
    include 'phpQuery.php';     
    phpQuery::newDocumentFile('url地址。。。');     
    $companies = pq('#hotcoms .coms')->find('div');     
    foreach($companies as $company)     
    {     
       echo pq($company)->find('h3 a')->text()."<br>";     
    }    

» 阅读全文

关键词: php采集 , phpquery采集

360给我的提供的Php通用SQL防注入代码

360提供的Php防注入代码

大家说不敢用

其实都开源了怎么就不敢用啦,,O(∩_∩)O哈哈~

大家看着用吧,挺不错的


    <?php     
    //Code By Safe3     
    function customError($errno, $errstr, $errfile, $errline)     
    {     
      echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />" ;     
      die();     
    }     

» 阅读全文

关键词: sql防注入代码

PHP下使用CURL方式POST数据至API接口的方法

PHP下使用curl方式post数据api接口的方法

大部分的API的HTTP请求方式都为GET,所以不管用AJAX和PHP二次处理都能拿到返回的数据

但是一些API的HTTP请求方式是POST,那么我们就需要使用到curl了

其实,也比较简单,上代码:

    <?php     
         
        $url = 'http://127.0.0.1/test.php';//POST指向的链接     
        $data = array(     
            'access_token'=>'thekeyvalue'     
        );     
         
        $json_data = postData($url, $data);     
        $array = json_decode($json_data,true);     
        echo '<pre>';print_r($array);     
             
        function postData($url, $data)     
        {     
            $ch = curl_init();     
            $timeout = 300;      
            curl_setopt($ch, CURLOPT_URL, $url);    
            curl_setopt($ch, CURLOPT_REFERER, "http://www.jincon.com/ ");   //构造来路   
            curl_setopt($ch, CURLOPT_POST, true);     
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);     
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);     
            $handles = curl_exec($ch);     
            curl_close($ch);     
            return $handles;     
        }     
         
    ?>   

关键词: api接口 , curl方式post数据

Nginx服务器下防止用户跨目录的方法,简单版

 nginx不能像apache一样控制用户在目录里,因此每个虚拟主机客户一旦上传php木马,就能读到别人的目录。

网上其它的方法都很麻烦,我这里找到一个简单的方法:

以web根目录为 /www 为例,将 /www 设为 root:root,然后设置权限为711,这样nginx就无权限列目录了。然后将下面的虚拟主机的目录名加上 -z93mx82ns6 这样的后缀,越长越好,难猜啊。呵呵。这样基本就安全了。怕不安全的,后缀设置长一点。

关键词: 跨目录 , nginx