首页>下载> 类库下载

  • text = (string) $text; } /** * @param string $text */ public static function create($text = '') { return new static($text); } /** * Append the string * * @param string $text * * @return Text */ public function append($text) { $this->text .= (string) $text; return $this; }PHP 拥有的多种函数可供创建、读取、上传以及编辑文本注意:请谨慎操作文本!当您操作文本时必须非常小心。如果您操作失误,可能会造成非常严重的破坏。常见的错误是:编辑错误的文本,被垃圾数据填满硬盘,意外删除文件内容

    其它类库 9792 2018-01-23
  • 其它类库 11550 2018-01-23
  • 其它类库 7849 2018-01-22
  • detectFromFilename('/path/to/some-file.html'); $this->assertEquals('text/html', $internetMediaType->asString()); } public function testFallback() { $analyzer = new Analyzer; $internetMediaType = $analyzer->detectFromFilename('/path/to/some-file.canal-extension-foo'); $this->assertEquals('application/octet-stream', $internetMediaType->asString()); }本类库实现对网站全流量、用户结构、访问路径、访问内容、以及接入地点等关键指标进行深度追踪的监测工具,真实地反映网站实际流量情况以及网络用户访问体验状况。

    其它类库 8106 2018-01-22
  • add(new ParaTestCommand(new PHPUnit())); return parent::doRun($input, $output); }并行测试技术是把并行技术引入到测试领域中所形成的方法和技术。就是可以较好地完成同时测试多个被测对象(UUTs)任务的一种先进测试方法和技术。并行测试是建立在并行概念基础之上的。并行测试 的核心是可以同时对多个被测对象进行测试。并行测试主要是通过在不同被测对象间切换,以实现并行测试。各个被测对象的测试过程都是独立并行的,一个被测对象的测试并不要等到另一个被测对象的测试完毕后方能进行。但每个被测对象内部测试过程还是按顺序测试的,因此说,这种并行测试方式对测试系统的测试性能和仪器利用率提高有限,其提升余地还很大

    其它类库 7199 2018-01-22
  • parent = $parent; $this->setPrivate(false); } public function getParent() { return $this->parent; }什么是依赖注入?IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection,简称DI)。当一个类的实例需要另一个类的实例协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。而采用依赖注入的方式,创建被调用者的工作不再由调用者来完成,因此叫控制反转,创建被调用者的实例的工作由IOC容器来完成,然后注入调用者,因此也称为依赖注入。

    其它类库 7078 2018-01-22
  • $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; }奖项数组是一个二维数组,记录了所有本次抽奖的奖项信息,其中id表示中奖等级,prize表示奖品,v表示中奖概率。注意其中的v必须为整数,你可以将对应的 奖项的v设置成0,即意味着该奖项抽中的几率是0,数组中v的总和(基数),基数越大越能体现概率的准确性。本例中v的总和为100,那么平板电脑对应的 中奖概率就是1%,如果v的总和是10000,那中奖概率就是万分之一了。$proArr是一个预先设置的数组,假设数组为:array(100,200,300,400),开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内,如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间,在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。这样 筛选到最终,总会有一个数满足要求。就相当于去一个箱子里摸东西,第一个不是,第二个不是,第三个还不是,那最后一个一定是。这个算法简单,而且效率非常 高,关键是这个算法已在我们以前的项目中有应用,尤其是大数据量的项目中效率非常棒。

    其它类库 15199 2018-01-20
  • 其它类库 10168 2018-01-20
  • 'application/vnd.android.package-archive', '3gp' => 'video/3gpp', 'ai' => 'application/postscript', 'aif' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'asc' => 'text/plain', 'atom' => 'application/atom+xml', 'au' => 'audio/basic', 'avi' => 'video/x-msvideo', 'bcpio' => 'application/x-bcpio', 'bin' => 'application/octet-stream', 'bmp' => 'image/bmp', 'cdf' => 'application/x-netcdf', 'cgm' => 'image/cgm', 'class' => 'application/octet-stream', 'cpio' => 'application/x-cpio', 'cpt' => 'application/mac-compactpro', 'csh' => 'application/x-csh', 'css' => 'text/css',本类库可以获得文件的mime type类型,需要的朋友可以下载使用

    其它类库 5665 2018-01-20
  • $value) { if (is_array($value)) { self::removeEmpty($arr[$key]); } else { $value = trim($value); if ($value == '') { unset($arr[$key]); } elseif ($trim) { $arr[$key] = $value; } } } }从数组中删除空白的元素(包括只有空白字符的元素)用法:@code php$arr = array('', 'test', ' ');ArrayHelper::removeEmpty($arr);dump($arr);输出结果中将只有 'test'@endcode@param array $arr 要处理的数组@param boolean $trim 是否对数组元素调用 trim 函数

    其它类库 4850 2018-01-20
  • getMax(); if($max) { $size = 1000; $last = ceil($max/$size); for($page=1;$page<=$last;$page++) { $result = $this->getHitListByPage($txt,$page,$size); if($result) $hitList = array_merge($hitList,$result); } } $hitList2 = array(); foreach($hitList as $hit=>$type) { $hitList2[$type][] = $hit; } return $hitList2; }本类库的敏感词替换算法,效率比str_replace高4倍(附6仟个敏感词),这个类库是没有学习过Trie树的时候写的,之后我接触了AC算法,我的算法和AC是类似的结构和逻辑,都是利用树,空间换时间,对搜索/替换海量数据帮助很明显。 strtr是KMP算法的代表,在对待海量词汇上面,并无优势,并且每次都要加载词库到内存。 使用AC算法写成扩展,将词库加载内存中,是最好的处理方式。 所以badword.src.php可供学习AC算法、学习查找替换等。

    其它类库 12593 2018-01-19
  • |<|=|in|like)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)"; private $postfilter = "\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)"; private $cookiefilter = "\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|\/\*.+?\*\/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)"; public function __construct() { foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);} foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);} foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);} } public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){ if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue); if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){ $this->writeslog($_SERVER["REMOTE_ADDR"]." ".strftime("%Y-%m-%d %H:%M:%S")." ".$_SERVER["PHP_SELF"]." ".$_SERVER["REQUEST_METHOD"]." ".$StrFiltKey." ".$StrFiltValue); showmsg('您提交的参数非法,系统已记录您的本次操作!','',0,1); } } public function writeslog($log){ $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt'; $ts = fopen($log_path,"a+"); fputs($ts,$log."\r\n"); fclose($ts); } }本类库首先构造函数参数,然后检查并写日志最后检查SQL注入日志。是一个很好用的防SQL注入的php类库

    其它类库 10158 2018-01-19