Mongodb PHP封装类 不指定

jed , 2018-3-14 11:46 , 代码编程 , 评论(0) , 阅读(37567) , Via 本站原创
Mongodb PHP封装类

PHP生成excel和word 不指定

jed , 2018-3-14 11:40 , 代码编程 , 评论(0) , 阅读(36497) , Via 本站原创
PHP生成excel和word

伪造来源采集http.php 不指定

jed , 2018-3-14 11:22 , 代码编程 , 评论(0) , 阅读(23631) , Via 本站原创

<?php
    function http($url){
    $ch = curl_init();  
    $curlurl = $url;  
    $referurl = $url;  
    $ip=mt_rand(11, 191).".".mt_rand(0, 240).".".mt_rand(1, 240).".".mt_rand(1, 240);   //随机ip  
    $agentarry=[  
      //PC端的UserAgent  
      "safari 5.1 – MAC"=>"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",  
      "safari 5.1 – Windows"=>"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",  
      "Firefox 38esr"=>"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0",  
      "IE 11"=>"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko",  
      "IE 9.0"=>"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0",  
      "IE 8.0"=>"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",  
      "IE 7.0"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",  
      "IE 6.0"=>"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",  
      "Firefox 4.0.1 – MAC"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",  
      "Firefox 4.0.1 – Windows"=>"Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",  
      "Opera 11.11 – MAC"=>"Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",  
      "Opera 11.11 – Windows"=>"Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",  
      "Chrome 17.0 – MAC"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",  
      "傲游(Maxthon)"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)",  
      "腾讯TT"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)",  
      "世界之窗(The World) 2.x"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",  
      "世界之窗(The World) 3.x"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)",  
      "360浏览器"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",  
      "搜狗浏览器 1.x"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",  
      "Avant"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)",  
      "Green Browser"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",  
      //移动端口  
      "safari iOS 4.33 – iPhone"=>"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",  
      "safari iOS 4.33 – iPod Touch"=>"Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",  
      "safari iOS 4.33 – iPad"=>"Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",  
      "Android N1"=>"Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",  
      "Android QQ浏览器 For android"=>"MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",  
      "Android Opera Mobile"=>"Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10",  
      "Android Pad Moto Xoom"=>"Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",  
      "BlackBerry"=>"Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+",  
      "WebOS HP Touchpad"=>"Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0",  
      "UC标准"=>"NOKIA5700/ UCWEB7.0.2.37/28/999",  
      "UCOpenwave"=>"Openwave/ UCWEB7.0.2.37/28/999",  
      "UC Opera"=>"Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999",  
      "微信内置浏览器"=>"Mozilla/5.0 (Linux; Android 6.0; 1503-M02 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/036558 Safari/537.36 MicroMessenger/6.3.25.861 NetType/WIFI Language/zh_CN",  
       // ""=>"",  
      
    ];  
    //$useragent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11";  //要得到类似这样useranget 可以自定义  
    $useragent=$agentarry[array_rand($agentarry,1)];  //随机浏览器useragent  
    $header = array(  
      'CLIENT-IP:'.$ip,  
      'X-FORWARDED-FOR:'.$ip,  
    );    //构造ip  
    curl_setopt($ch, CURLOPT_URL, $curlurl); //要抓取的网址  
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);  
    curl_setopt($ch, CURLOPT_REFERER, $referurl);  //模拟来源网址  
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent); //模拟常用浏览器的useragent  
      
    $page_content = curl_exec($ch);  
    curl_close($ch);  
    return $page_content;  
  }

PHP的FTP操作类 不指定

jed , 2018-3-14 11:20 , 代码编程 , 评论(0) , 阅读(18527) , Via 本站原创

<?php
/**
* 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )
*/
class class_ftp
{
    public $off; // 返回操作状态(成功/失败)
    public $conn_id; // FTP连接
    const FTP_HOST='*.*.*.*';
    const FTP_PORT='21';
    const FTP_USER='*******';
    const FTP_PASS='*******';
    /**
    * 方法:FTP连接
    * @FTP_HOST -- FTP主机
    * @FTP_PORT -- 端口
    * @FTP_USER -- 用户名
    * @FTP_PASS -- 密码
    */
    function __construct()
    {
    $this->conn_id = @ftp_connect(self::FTP_HOST,self::FTP_PORT) or die("FTP服务器连接失败");
    @ftp_login($this->conn_id,self::FTP_USER,self::FTP_PASS) or die("FTP服务器登陆失败");
    @ftp_pasv($this->conn_id,1); // 打开被动模拟
    }
    /**
    * 方法:上传文件
    * @path -- 本地路径
    * @newpath -- 上传路径
    * @type -- 若目标目录不存在则新建
     */
     function up_file($path,$newpath,$type=true)
     {
     var_dump($this->conn_id);exit;
     if($type) $this->dir_mkdirs($newpath);
     $this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);
     if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";
     }
     /**
     * 方法:移动文件
     * @path -- 原路径
     * @newpath -- 新路径
     * @type -- 若目标目录不存在则新建
     */
     function move_file($path,$newpath,$type=true)
     {
     if($type) $this->dir_mkdirs($newpath);
     $this->off = @ftp_rename($this->conn_id,$path,$newpath);
     if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";
     }
     /**
     * 方法:复制文件
     * 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径
     * @path -- 原路径
     * @newpath -- 新路径
     * @type -- 若目标目录不存在则新建
     */
     function copy_file($path,$newpath,$type=true)
     {
     $downpath = "c:/tmp.dat";
     $this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载
     if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";
     $this->up_file($downpath,$newpath,$type);
     }
     /**
     * 方法:删除文件
     * @path -- 路径
     */
     function del_file($path)
     {
     $this->off = @ftp_delete($this->conn_id,$path);
     if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";
     }
     /**
     * 方法:生成目录
     * @path -- 路径
     */
     function dir_mkdirs($path)
     {
     $path_arr = explode('/',$path); // 取目录数组
     $file_name = array_pop($path_arr); // 弹出文件名
     $path_div = count($path_arr); // 取层数
     foreach($path_arr as $val) // 创建目录
      {
      if(@ftp_chdir($this->conn_id,$val) == FALSE)
      {
      $tmp = @ftp_mkdir($this->conn_id,$val);
      if($tmp == FALSE)
      {
      echo "目录创建失败,请检查权限及路径是否正确!";
      exit;
     }
     @ftp_chdir($this->conn_id,$val);
     }
     }
     for($i=1;$i=$path_div;$i++) // 回退到根
     {
     @ftp_cdup($this->conn_id);
     }
     }
     /**
     * 方法:关闭FTP连接
         */
             function close()
             {
             @ftp_close($this->conn_id);
     }
     }// class class_ftp end
    
     /************************************** 测试 ***********************************
     $ftp = new class_ftp('192.168.100.143',21,'user','pwd'); // 打开FTP连接
     //$ftp->up_file('aa.txt','a/b/c/cc.txt'); // 上传文件
     //$ftp->move_file('a/b/c/cc.txt','a/cc.txt'); // 移动文件
     //$ftp->copy_file('a/cc.txt','a/b/dd.txt'); // 复制文件
     //$ftp->del_file('a/b/dd.txt'); // 删除文件
     $ftp->close(); // 关闭FTP连接
     ******************************************************************************/
?>

<?php
header("Content-type:text/html;charset=utf-8");


/**
* 程序说明:php记录所有post,get,cookie以及IP地址,来路,访问网址
* @author    yujianyue <admin@ewuyi.net>
* @homepage  http://12391.net
*/


//记录得到的
function slog($rr,$StrValue) {
  $logfile = fopen($rr,'a+');
  fwrite($logfile,"\r\n".$StrValue);
  fclose($logfile);
}

function arraforeach($arr) {
  static $str;
  static $keystr;
  if (!is_array($arr)) {
  return $arr;
  }
  foreach ($arr as $key => $val ) {
  $keystr=$keystr.$key;
  if (is_array($val)) {
  arraforeach($val);
  } else {
  $str[] = $val.$keystr;
  }
  }
  return implode($str);
}

function rlog($StrKey,$StrValue,$ArrReq,$method) {
  $StrValue=arraforeach($StrValue);
  return  "<tr><td>$method</td><td>$StrKey</td><td>$StrValue</td></tr>\r\n";
}

$linev = "<h1>".date('Y-m-d H:i:s')."</h1>\r\n";
$linev .= "<table>\r\n";

//逐个GET
  foreach($_GET as $key=>$value) {
$linev .= "\r\n".rlog($key,$value,$getfilter,"GET");
  }

//逐个POST
  foreach($_POST as $key=>$value) {
$linev .= "\r\n".rlog($key,$value,$postfilter,"POST");
  }

//逐个COOKIE
  foreach($_COOKIE as $key=>$value) {
$linev .= "\r\n".rlog($key,$value,$cookiefilter,"COOKIE");
  }

//尝试记录RAW等POST过来的xml,json数据
  $datainput = file_get_contents('php://input');
  if($datainput){
  $datainput=arraforeach($datainput);
$linev .= "\r\n".rlog("Input",$datainput,$datainput,"Input");
  }else{
  $datainput = $GLOBALS['HTTP_RAW_POST_DATA'];
  $datainput = arraforeach($datainput);
if($datainput) $linev .= "\r\n".rlog("Input",$datainput,$datainput,"RAW_POST");
  }

/*
$linev .=  "\r\n MYIP-=>".$_SERVER["REMOTE_ADDR"]."\r\n";
$linev .=  " From-=>".$_SERVER['HTTP_REFERER']."\r\n";
$linev .=  " Uurl-=>".$_SERVER["REQUEST_URI"]."\r\n";
$linev .=  " Agen-=>".$_SERVER['HTTP_USER_AGENT']."\r\n\r\n";
*/

$linev .=  "\r\n".rlog("From",$_SERVER['HTTP_REFERER'],$_SERVER['HTTP_REFERER'],"From");
$linev .=  "\r\n".rlog("Uurl",$_SERVER["REQUEST_URI"],$_SERVER["REQUEST_URI"],"Uurl");
$linev .=  "\r\n".rlog("MYIP",$_SERVER["REMOTE_ADDR"],$_SERVER["REMOTE_ADDR"],"MYIP");
$linev .=  "\r\n".rlog("Agen",$_SERVER['HTTP_USER_AGENT'],$_SERVER['HTTP_USER_AGENT'],"Agen");
$linev .=  "\r\n</table>\r\n";


$lines='<style type="text/css">table{border:1px solid #0180CF; margin:0 auto;font-size:12px;width:92%;}table td{border:1px solid #a2c6d3;padding:5px;word-wrap:break-word;word-break:break-all;}</style>';

$rr = './_12391.net_'.date('Y-m-d').'.html';//按天存放

if(!file_exists($rr)){
slog($rr,$lines);
}

slog($rr,$linev);
echo $lines;
echo $linev;


?>

PHP是否命令行执行 不指定

jed , 2018-3-14 11:13 , 代码编程 , 评论(0) , 阅读(8238) , Via 本站原创

<?php
function is_cli()
{
    return preg_match("/cli/i", php_sapi_name()) ? true : false;
}


<?php

function getRedis()
{
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    return $redis;
}

function getApiLimit($api, $default = '2000')
{
    //接口名称 = 每次请求ms间隔
    $info = [
        'user.info' => '500',
        'user.login' => '1000'
    ];
    return isset($info[$api]) ? $info[$api] : $default;
}

$api = isset($_GET['path']) ? $_GET['path'] : 'main';
$time = getApiLimit($api);
$key = "api_limit_" . $api;
$redis = getRedis();
$num = $redis->incr($key);
if($num == 1) {
    $redis->pExpire($key, $time);
} else {
    exit('api limit');
}
echo 'success';

PHP+Crontab执行定时任务 不指定

jed , 2018-3-14 10:40 , 服务器技术 , 评论(0) , 阅读(8247) , Via 本站原创
我们做web项目开发的,经常会需要定时备份数据,定时执行重启某个服务或者定时执行某个PHP程序等等,一般在Linux下使用Crontab,在Windows下使用计划任务。本文主要介绍Linux下使用Crontab基础知识以及执行PHP任务。

Crontab是一个Unix/Linux系统下的常用的定时执行工具,可以在无需人工干预的情况下运行指定作业。
最近在开发一个PHP程序时遇到了下面的错误:
PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted
错误信息显示允许的最大内存已经耗尽。遇到这样的错误起初让我很诧异,但转眼一想,也不奇怪,因为我正在开发的这个程序是要用一个foreach循环语句在一个有4万条记录的表里全表搜索具有特定特征的数据,也就是说,一次要把4万条数据取出,然后逐条检查每天数据。可想而知,4万条数据全部加载到内存中,内存不爆才怪。
毕竟编程这么多年,我隐约记得PHP里提供有非一次全部加载数据的API,是像处理流媒体那样,随用随取随丢、数据并不会积累在内存的查询方法。经过简单的搜索,果然在官方网站上找到的正确的用法。
这个问题在PHP的官方网站上叫缓冲查询和非缓冲查询(Buffered and Unbuffered queries)。 PHP的查询缺省模式是缓冲模式。也就是说,查询数据结果会一次全部提取到内存里供PHP程序处理。这样给了PHP程序额外的功能,比如说,计算行数,将 指针指向某一行等。更重要的是程序可以对数据集反复进行二次查询和过滤等操作。但这种缓冲查询模式的缺陷就是消耗内存,也就是用空间换速度。
相对的,另外一种PHP查询模式是非缓冲查询,数据库服务器会一条一条的返回数据,而不是一次全部返回,这样的结果就是PHP程序消耗较少的内存,但却增加了数据库服务器的压力,因为数据库会一直等待PHP来取数据,一直到数据全部取完。
很显然,缓冲查询模式适用于小数据量查询,而非缓冲查询适应于大数据量查询。
对于PHP的缓冲模式查询大家都知道,下面列举的例子是如何执行非缓冲查询API。

威盾PHP加密专家解密算法 不指定

jed , 2018-3-14 10:34 , 代码编程 , 评论(0) , 阅读(8139) , Via 本站原创

<?php
/***********************************
*威盾PHP加密专家解密算法 By:Neeao
*http://Neeao.com
*2009-09-10
***********************************/

$filename="logincheck-hou.php";//要解密的文件
$lines = file($filename);//0,1,2行

//第一次base64解密
$content="";
if(preg_match("/O0O0000O0\('.*'\)/",$lines[1],$y))
{
    $content=str_replace("O0O0000O0('","",$y[0]);
    $content=str_replace("')","",$content);
    $content=base64_decode($content);
}


//第一次base64解密后的内容中查找密钥
$decode_key="";
if(preg_match("/\),'.*',/",$content,$k))
{
    $decode_key=str_replace("),'","",$k[0]);
    $decode_key=str_replace("',","",$decode_key);
}

//查找要截取字符串长度
$str_length="";
if(preg_match("/,\d*\),/",$content,$k))
{
    $str_length=str_replace("),","",$k[0]);
    $str_length=str_replace(",","",$str_length);
}
//截取文件加密后的密文
$Secret=substr($lines[2],$str_length);
//echo $Secret;

//直接还原密文输出
/*echo "<?php\n".base64_decode(strtr($Secret,$decode_key,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))."?>";
*/

file_put_contents("test.php", "<?php\n".base64_decode(strtr($Secret,$decode_key,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))."?>" );

?>
分页: 2/75 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]