> 다운로드 >  라이브러리 다운로드

  • <?php namespace KzykHys\Text; class Text implements \Serializable {     private $text;     public function __construct($text = '')     {         $this->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에는 텍스트 생성, 읽기, 업로드 및 편집을 위한 다양한 기능이 있습니다참고: 텍스트를 주의해서 조작하세요! 텍스트를 조작할 때는 매우 조심해야 합니다. 잘못하면 매우 심각한 피해를 입을 수 있습니다. 일반적인 실수는 다음과 같습니다. 잘못된 텍스트 편집, 하드 드라이브를 정크 데이터로 채우기, 실수로 파일 콘텐츠 삭제

    기타 도서관98222018-01-23
  • <?php // Copyright (c) Lellys Informática. All rights reserved. See License.txt in the project root for license information. namespace Collections; /**  * Provides functionality to evaluate queries against a specific data source wherein the type of the data is not  * specified.  */ interface CollectionInterface extends     ConstCollectionInterface,     OutputCollectionInterface {     /**      * Removes all items from the collection.      * @return void      */     public function clear(); }컬렉션을 얻는 구문은 데이터베이스를 얻는 것과 동일합니다. 컬렉션은 테이블과 동일합니다. (관계형 데이터베이스에 익숙하신 분)

    기타 도서관115702018-01-23
  • <?php spl_autoload_register(function ($className) {     $className = ltrim($className, '\');     $fileName = '';     if ($lastNsPos = strripos($className, '\')) {         $namespace = substr($className, 0, $lastNsPos);         $className = substr($className, $lastNsPos + 1);         $fileName = str_replace('\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;     }     $fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className . '.php';     if (file_exists($fileName)) {         require $fileName;         return true;     }     return false; });예를 들어 call_user_func() 함수는 사용자 정의 함수를 매개변수로 받을 수 있는 함수입니다. 콜백 함수는 함수일 뿐만 아니라 객체의 메서드, 정적 클래스의 메서드일 수도 있습니다. PHP 함수는 함수 이름 문자열로 전달됩니다. array(), echo(),empty(), eval(),exit(), isset과 같은 언어 구조를 제외한 모든 내장 함수 또는 사용자 정의 함수가 전달될 수 있습니다. (), list(), print(), unset() 등 객체의 메소드를 전달하려면 배열 형식으로 전달해야 합니다. 배열 첨자 0은 객체 이름이고, 첨자 1은 메소드 이름입니다. 객체로 인스턴스화된 정적 클래스가 없는 경우 해당 메서드를 전달하려면 배열 0 첨자로 지정된 객체 이름을 클래스 이름으로 바꿉니다.

    기타 도서관78652018-01-22
  • <?php namespace Dflydev\Canal\Analyzer; use Dflydev\Canal\Metadata\Metadata; class AnalyzerTest extends \PHPUnit_Framework_TestCase {     public function testKnownType()     {         $analyzer = new Analyzer;         $internetMediaType = $analyzer->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());     }이 라이브러리는 웹사이트 전체 트래픽, 사용자 구조, 액세스 경로, 액세스 콘텐츠, 액세스 위치 등 주요 지표를 심층적으로 추적하기 위한 모니터링 도구를 구현하여 실제 웹사이트 트래픽 및 네트워크 사용자 액세스 경험을 반영합니다.

    기타 도서관81302018-01-22
  • <?php class ParaTestApplication extends Application {     const NAME = 'ParaTest';     const VERSION = '1.0.1';     public function __construct()     {         parent::__construct(static::NAME, VersionProvider::getVersion(static::VERSION));     }     public function doRun(InputInterface $input, OutputInterface $output)     {         $this->add(new ParaTestCommand(new PHPUnit()));         return parent::doRun($input, $output);     }병렬 테스트 기술은 테스트 분야에 병렬 기술을 도입하여 형성된 방법이자 기술입니다. 이는 여러 UUT(테스트 대상 개체)를 동시에 테스트하는 작업을 더 잘 완료할 수 있는 고급 테스트 방법 및 기술입니다. 병렬 테스트는 병렬성 개념을 기반으로 합니다. 병렬 테스트의 핵심은 테스트 중인 여러 개체를 동시에 테스트할 수 있다는 것입니다. 병렬 테스트는 주로 테스트 중인 여러 개체 간을 전환하여 병렬 테스트를 수행합니다. 테스트된 각 개체의 테스트 프로세스는 독립적이고 병렬적입니다. 한 테스트 개체의 테스트는 수행되기 전에 다른 테스트 개체의 테스트가 완료될 때까지 기다릴 필요가 없습니다. 그러나 각 테스트 개체의 내부 테스트 프로세스는 여전히 순차적으로 테스트되므로 이러한 병렬 테스트 방법은 테스트 시스템의 테스트 성능 및 장비 활용도 측면에서 제한적이며 여전히 개선의 여지가 많습니다

    기타 도서관72182018-01-22
  • <?php namespace Symfony\Component\DependencyInjection; use Symfony\Component\DependencyInjection\Exception\BadMethodCallException; use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException; class ChildDefinition extends Definition {     private $parent;     public function __construct(string $parent)     {         $this->parent = $parent;         $this->setPrivate(false);     }     public function getParent()     {         return $this->parent;     }의존성 주입이란 무엇인가요? IOC: 영어 정식 이름: Inversion of Control, 중국어 이름: Inversion of Control, DI(Dependency Injection)라는 또 다른 이름도 있습니다. 클래스의 인스턴스가 다른 클래스 인스턴스의 지원을 필요로 하는 경우 기존 프로그래밍 프로세스에서는 호출자가 일반적으로 호출 수신자의 인스턴스를 만듭니다. 종속성 주입을 사용하면 호출 수신자를 생성하는 작업이 더 이상 호출자가 수행하지 않으므로 제어 역전이라고 합니다. 호출 수신자의 인스턴스를 생성하는 작업은 IOC 컨테이너에서 수행된 다음 호출자에게 주입됩니다. 종속성 주입이라고도 합니다.

    기타 도서관70952018-01-22
  • <?php function get_rand($proArr) {     $result = '';     //概率数组的总概率精度     $proSum = array_sum($proArr);     //概率数组循环     foreach ($proArr as $key => $proCur) {         $randNum = mt_rand(1, $proSum);         if ($randNum <= $proCur) {             $result = $key;             break;         } else {             $proSum -= $proCur;         }     }     unset ($proArr);     return $result; }상품 배열은 이 복권의 모든 상품 정보를 기록하는 2차원 배열로, id는 당첨 레벨, 상품은 상품, v는 당첨 확률을 나타냅니다. v는 정수여야 합니다. 해당 보상의 v를 0으로 설정할 수 있습니다. 이는 보상 획득 확률이 0임을 의미합니다. 배열(기본)에 있는 v의 합은 더 큽니다. 정확한 확률을 반영할 수 있습니다. 이 예에서 v의 합이 100이면 태블릿의 당첨 확률은 1%입니다. v의 합이 10,000이면 당첨 확률은 1/10000입니다. $proArr은 사전 설정된 배열입니다. 배열이 array(100,200,300,400)라고 가정합니다. 확률 범위 1,1000에서 첫 번째 숫자를 검사하여 발생 확률 범위 내에 있는지 확인합니다. 확률 공간은 k에서 방금 숫자를 뺀 값의 확률 공간입니다. 이 경우에는 마이너스 100이므로 두 번째 숫자가 1,900 범위 내에서 필터링된다는 의미입니다. 이런 식으로 심사가 끝날 때까지 항상 요구 사항을 충족하는 숫자가 있습니다. 이는 상자 안의 무언가를 만지는 것과 같습니다. 첫 번째 것도 없고, 두 번째도 없고, 세 번째도 없으면 마지막 것도 있어야 합니다. 이 알고리즘은 간단하고 매우 효율적입니다. 중요한 점은 이 알고리즘이 이전 프로젝트, 특히 대용량 데이터가 있는 프로젝트에 적용되었다는 것입니다.

    기타 도서관152242018-01-20
  • <?php function import($class, $baseUrl = '', $ext='.class.php') {     static $_file = array();     $class = str_replace(array('.', '#'), array('/', '.'), $class);     if ('' === $baseUrl && false === strpos($class, '/')) {         // 检查别名导入         return alias_import($class);     }     if (isset($_file[$class . $baseUrl]))         return true;     else         $_file[$class . $baseUrl] = true;     $class_strut = explode('/', $class);     if (empty($baseUrl)) {         if ('@' == $class_strut[0] || APP_NAME == $class_strut[0]) {             //加载当前项目应用类库             $baseUrl = dirname(LIB_PATH);             $class = substr_replace($class, basename(LIB_PATH).'/', 0, strlen($class_strut[0]) + 1);         }elseif ('think' == strtolower($class_strut[0])){ // think 官方基类库             $baseUrl = CORE_PATH;             $class = substr($class,6);         }elseif (in_array(strtolower($class_strut[0]), array('org', 'com'))) {             // org 第三方公共类库 com 企业公共类库             $baseUrl = LIBRARY_PATH;         }else { // 加载其他项目应用类库             $class = substr_replace($class, '', 0, strlen($class_strut[0]) + 1);             $baseUrl = APP_PATH . '../' . $class_strut[0] . '/'.basename(LIB_PATH).'/';         }     }필요한 클래스 라이브러리 가져오기는 Java의 Import와 동일합니다. 이 함수에는 캐싱 기능이 있습니다@param string $class class library 네임스페이스 string@param string $baseUrl 시작 경로@param string $ ext 가져온 파일 확장자

    기타 도서관101872018-01-20
  • <?php class MimeTypes {   public static $mime_types = array (     'apk' => '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 형식을 얻을 수 있습니다. 필요한 친구는 다운로드하여 사용할 수 있습니다

    기타 도서관56862018-01-20
  • <?php class ArrayHelper{          static function removeEmpty(& $arr, $trim = TRUE)     {         foreach ($arr as $key => $value)         {             if (is_array($value))             {                 self::removeEmpty($arr[$key]);             }             else             {                 $value = trim($value);                 if ($value == '')                 {                     unset($arr[$key]);                 }                 elseif ($trim)                 {                     $arr[$key] = $value;                 }             }         }     }배열에서 빈 요소(공백 문자만 포함된 요소 포함) 제거Usage:@code php$arr = array('', 'test', ' ');ArrayHelper: : RemoveEmpty($arr);dump($arr);출력 결과에는 'test'만 있을 것입니다@endcode@param array $arr 처리할 배열@param boolean $ 트림 배열 요소가 트림 기능을 호출하는 것이 맞나요

    기타 도서관48752018-01-20
  • <?php class Logic_BlackWord {   const APP_FORUM = 1;   const APP_BLOG  = 2;   const APP_VOTE  = 3;   public function getHitList($txt)   {     $hitList = array();     $max = $this->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,000개의 민감한 단어가 첨부됨). 이 클래스 라이브러리는 제가 Trie 트리를 연구하지 않았을 때 작성되었습니다. 내 알고리즘은 AC와 유사한 구조와 논리를 가지고 있으며 트리를 사용하고 공간을 시간으로 교환하므로 대용량 데이터를 검색/교체하는 데 매우 유용합니다. strtr은 KMP 알고리즘의 대표적인 알고리즘으로, 대용량 어휘를 처리하는 데 장점이 없으며 매번 어휘 라이브러리를 메모리에 로드해야 합니다. AC 알고리즘을 사용하여 확장 기능을 작성하고 어휘를 메모리에 로드하는 것이 이를 처리하는 가장 좋은 방법입니다. 그래서 badword.src.php는 AC 알고리즘 학습, 검색 및 바꾸기 학습 등에 사용될 수 있습니다.

    기타 도서관126152018-01-19
  • <?php class sqlsafe {   private $getfilter = "'|(and|or)\b.+?(>|<|=|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 클래스 라이브러리입니다

    기타 도서관101752018-01-19