Maison > Télécharger >  Téléchargement de la bibliothèque

  • <?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 a une variété de fonctions pour créer, lire, télécharger et éditer du texteRemarque : veuillez utiliser le texte avec prudence ! Vous devez être très prudent lorsque vous manipulez du texte. Si vous ne le faites pas correctement, vous pouvez causer des dommages très graves. Les erreurs courantes sont : Modifier le mauvais texte, remplir votre disque dur de données indésirables, supprimer accidentellement le contenu d'un fichier

    Autres bibliothèques98212018-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(); }La syntaxe pour obtenir une collection est la même que pour obtenir une base de données : une collection équivaut à une table. (Si vous êtes familier avec les bases de données relationnelles)

    Autres bibliothèques115702018-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; });Par exemple, la fonction call_user_func() peut recevoir une fonction définie par l'utilisateur en tant que paramètre. La fonction de rappel peut être non seulement une fonction, mais aussi une méthode d'objet et une méthode d'une classe statique. Une fonction PHP est transmise sous forme de chaîne de nom de fonction. Toute fonction intégrée ou définie par l'utilisateur peut être transmise, à l'exception des structures de langage telles que array(), echo(), empty(), eval(), exit(), isset. () ,list(),print(),unset(), etc. Si vous souhaitez transmettre la méthode d'un objet, il doit être transmis sous la forme d'un tableau. L'indice du tableau 0 est le nom de l'objet et l'indice 1 est le nom de la méthode. S'il n'y a pas de classe statique instanciée en tant qu'objet, pour transmettre sa méthode, remplacez le nom de l'objet spécifié par l'indice du tableau 0 par le nom de la classe.

    Autres bibliothèques78652018-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());     }Cette bibliothèque implémente un outil de surveillance pour un suivi approfondi des indicateurs clés tels que le trafic complet du site Web, la structure des utilisateurs, les chemins d'accès, le contenu d'accès et les emplacements d'accès, reflétant véritablement le trafic réel du site Web et l'expérience d'accès des utilisateurs du réseau.

    Autres bibliothèques81292018-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);     }La technologie de test parallèle est une méthode et une technologie formées en introduisant une technologie parallèle dans le domaine des tests. Il s'agit d'une méthode et d'une technologie de test avancées qui permettent de mieux accomplir la tâche de test de plusieurs objets testés (UUT) en même temps. Les tests parallèles sont basés sur le concept de parallélisme. Le cœur des tests parallèles est que plusieurs objets testés peuvent être testés en même temps. Les tests parallèles réalisent principalement des tests parallèles en basculant entre différents objets testés. Le processus de test de chaque objet testé est indépendant et parallèle. Le test d'un objet testé ne nécessite pas d'attendre que le test d'un autre objet testé soit terminé avant de pouvoir être effectué. Cependant, le processus de test interne de chaque objet testé est toujours testé en séquence. Par conséquent, cette méthode de test parallèle a limité l'amélioration des performances de test et de l'utilisation des instruments du système de test, et il y a encore beaucoup de place à l'amélioration.

    Autres bibliothèques72172018-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;     }Qu'est-ce que l'injection de dépendances ? IOC : Nom complet anglais : Inversion of Control, nom chinois : Inversion of Control, il a également un autre nom appelé Dependency Injection (DI). Lorsqu'une instance d'une classe nécessite l'assistance d'une instance d'une autre classe, dans le processus de programmation traditionnel, l'appelant crée généralement une instance de l'appelé. Avec l'injection de dépendances, le travail de création de l'appelé n'est plus effectué par l'appelant, on parle donc d'inversion de contrôle. Le travail de création de l'instance de l'appelé est effectué par le conteneur IOC, puis injecté dans l'appelant, donc. on l'appelle également injection de dépendances.

    Autres bibliothèques70952018-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; }Le tableau des prix est un tableau bidimensionnel qui enregistre toutes les informations sur les prix de cette loterie, où id représente le niveau gagnant, prix représente le prix et v représente la probabilité de gagner. Notez que v doit être un entier. Vous pouvez définir le v de la récompense correspondante sur 0, ce qui signifie que la probabilité de remporter la récompense est de 0. La somme de v dans le tableau (base) est grande. précis, la probabilité peut être reflétée. Dans cet exemple, la somme de v est de 100, alors la probabilité de gagner pour la tablette est de 1 %. Si la somme de v est de 10 000, la probabilité de gagner est de une sur dix mille. $proArr est un tableau prédéfini. Supposons que le tableau soit : array(100,200,300,400). Il commence par filtrer le premier nombre de la plage de probabilité de 1 1000 pour voir s'il se trouve dans sa plage de probabilité d'occurrence. L'espace de probabilité est l'espace de probabilité de la valeur de k moins le nombre actuel. Dans ce cas, il est de moins 100, ce qui signifie que le deuxième nombre est filtré dans la plage de 1 900. De cette façon, jusqu'à la fin de la présélection, il y aura toujours un numéro qui répondra aux exigences. C'est comme toucher quelque chose dans une boîte. Si le premier n'est pas là, le deuxième n'est pas là et le troisième n'est pas là, alors le dernier doit l'être. Cet algorithme est simple et très efficace. La clé est que cet algorithme a été appliqué dans nos projets précédents, en particulier dans des projets avec de grandes quantités de données. L'efficacité est très bonne.

    Autres bibliothèques152242018-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).'/';         }     }L'importation de la bibliothèque de classes requise est la même que celle de JavaCette fonction a une fonction de mise en cache@param string $class class library namespace string@param string $baseUrl start path@param string $ ext extension de fichier importé

    Autres bibliothèques101872018-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',Cette bibliothèque peut obtenir le type MIME du fichier. Les amis qui en ont besoin peuvent le télécharger et l'utiliser.

    Autres bibliothèques56862018-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;                 }             }         }     }Supprimez les éléments vides (y compris les éléments contenant uniquement des caractères vides) du tableauUsage:@code php$arr = array('', 'test', ' ');ArrayHelper: : removeEmpty($arr);dump($arr);Il n'y aura que 'test' dans le résultat de sortie@endcode@param array $arr Le tableau à traiter@param boolean $ trim Est-ce vrai ? Les éléments du tableau appellent la fonction trim

    Autres bibliothèques48752018-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;   }L'algorithme de remplacement de mots sensibles de cette bibliothèque de classes est 4 fois plus efficace que str_replace (avec 6 000 mots sensibles attachés). Cette bibliothèque de classes a été écrite alors que je n'avais pas étudié les arbres de Trie. Après cela, je suis entré en contact avec l'AC. algorithme. Mon algorithme Il a une structure et une logique similaires à AC, utilisant à la fois des arbres et échangeant de l'espace contre du temps, ce qui est très utile pour rechercher/remplacement de données massives. strtr est le représentant de l'algorithme KMP. Il n'a aucun avantage pour gérer un vocabulaire massif, et la bibliothèque de vocabulaire doit être chargée en mémoire à chaque fois. Utiliser l'algorithme AC pour écrire des extensions et charger le vocabulaire en mémoire est la meilleure façon de le gérer. Ainsi, badword.src.php peut être utilisé pour apprendre l'algorithme AC, apprendre la recherche et le remplacement, etc.

    Autres bibliothèques126152018-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);   } }Cette bibliothèque de classes construit d'abord les paramètres de la fonction, puis vérifie et écrit le journal, et enfin vérifie le journal d'injection SQL. C'est une bibliothèque de classes PHP très utile pour empêcher l'injection SQL

    Autres bibliothèques101742018-01-19