spl

Sorting files with DirectoryIterator

十年热恋 提交于 2019-11-30 04:20:55
问题 I'm making a directory listing PHP5 script for lighttpd. In a given directory, I'd like to be able to list direct sub-directories and files (with informations). After a quick search, DirectoryIterator seems to be my friend: foreach (new DirectoryIterator('.') as $file) { echo $file->getFilename() . '<br />'; } but I'd like to be able to sort files by filename, date, mime-types...etc How to do this (with ArrayObject/ArrayIterator?) ? Thanks 回答1: Above solution didn't work for me. Here's what I

secsoso spl 语法说明

不想你离开。 提交于 2019-11-30 03:47:42
概述 数据分析一直是近几年非常热的一个话题,但如何进行数据分析目前业界还没有一个统一答案,从抽象的角度来说,先要有数据,然后有目标,最后给个工具从数据中提取目标这个就是数据分析过程。但目前数据和目标都相对比较容易获取,但工具一直没有比较理想的工具。公司根据这种情况开发了一系列产品来缓解数据分析的过程,其中免费的命令行工具为secsoso。它们在搜索的时候都用了SPL (Search Processing Language)语言,本文就介绍SPL的搜索语法。 快速参考 面向SQL用户的SPL 以下内容不是 SQL 与 SPL搜索处理语⾔ (SPL) 之间的精确映射, 但是, 如果您熟悉 SQL,这⼀快速对⽐可以帮助您快速熟悉搜索命令的使⽤。 库概念 数据库概念 Spl 概念 注释 SQL 查询 SPL搜索 SPL搜索是对数据进⾏检索, 并且可以执⾏转换和报告操作。 可以将搜索所获得的结果通过管道符从⼀个命令传递或传输到另⼀个命令, 以对这些结果进⾏过滤、 修改、 重新排序和分组。 表/视图 搜索结果 对secsoso来说一个文件就是一个表的概念。 row 结果/事件 SPL搜索中的结果是⼀个包含字段(即, 列) 值的列表, 对应于表格的⾏。事件是指具有时间戳和原始⽂本的结果。 通常, 事件是⽇志⽂件中的⼀条记录, 从 SQL 到SPL 说明: 完整语法为:file=(“/export

类自定载入

怎甘沉沦 提交于 2019-11-30 03:25:03
#1. 为什么需要类自动加载机制 ##原因: 在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,这么做会产生大量的require或者include方法调用,这样不因降低效率,而且使得代码难以维护,况且require_once的代价很大。 ##解决 在PHP5之前,各个PHP框架如果要实现类的自动加载,一般都是按照某种约定自己实现一个遍历目录,自动加载所有符合约定规则的文件的类或函数。 当然,PHP5之前对面向对象的支持并不是太好,类的使用也没有现在频繁。 在PHP5后,当加载PHP类时,如果类所在文件没有被包含进来,或者类名出错,Zend引擎会自动调用__autoload 函数。此函数需要用户自己实现__autoload函数。 在PHP5.1.2版本后,可以使用spl_autoload_register函数自定义自动加载处理函数。当没有调用此函数,默认情况下会使用SPL自定义的spl_autoload函数。 教程 #2. __autoload(类名)函数 1、 __autoload示例: function __autoload($class_name) { echo '__autload class:', $class_name, '

PHP的autoLoad自动加载机制 的几种方式

亡梦爱人 提交于 2019-11-30 03:24:52
说说PHP的autoLoad自动加载机制 php的autoload大致可以使用两种方法:__autoload和spl方法。这两种方法又各有不同的几种使用方法 __autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one 复制代码 代码如下: function __autoload($class_name) { $path = str_replace('_', '/', $class_name); require_once $path . '.php'; } // 这里会自动加载Http/File/Interface.php 文件 $a = new Http_File_Interface(); 这种方法的好处就是简单易使用。当然也有缺点,缺点就是将类名和文件路径强制做了约定,当修改文件结构的时候,就势必要修改类名。 __autoload的使用方法2(直接映射法) 复制代码 代码如下: $map = array( 'Http_File_Interface' => 'C:/PHP/HTTP/FILE/Interface.php' ); function __autoload($class_name) { if (isset($map[$class_name])) { require_once $map[$class_name]; } }

PHP中spl_autoload_register函数的用法

断了今生、忘了曾经 提交于 2019-11-30 03:24:41
spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明 bool spl_autoload_register ([ callback $autoload_function ] ) 将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或 spl_autoload_call()。 参数 autoload_function 欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数 spl_autoload()。 返回值 如果成功则返回 TRUE,失败则返回 FALSE。 注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。 SPL autoload机制的实现是通过将函数指针autoload_func指向自己实现的具有自动装载功能的函数来实现的

PHP中spl_autoload_register函数的用法

好久不见. 提交于 2019-11-30 03:24:27
PHP中spl_autoload_register函数的用法 spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明 bool spl_autoload_register ([ callback $autoload_function ] ) 将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或 spl_autoload_call()。 参数 autoload_function 欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数 spl_autoload()。 返回值 如果成功则返回 TRUE,失败则返回 FALSE。 注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。 SPL autoload机制的实现是通过将函数指针autoload

PHP autoload 函数

坚强是说给别人听的谎言 提交于 2019-11-30 03:24:07
PHP autoload 函数 (1) autoload机制概述 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子: /* Person.class.php */ <?php class Person { var $name, $age; function __construct ($name, $age) { $this->name = $name; $this->age = $age; } } ?> /* no_autoload.php */ <?php require_once (”Person.class.php”); $person = new Person(”Altair”, 6); var_dump ($person); ?> 在这个例子中,no-autoload.php文件需要使用Person类,它使用了require_once将其包含,然后就可以直接使用Person类来实例化一个对象。 但随着项目规模的不断扩大,使用这种方式会带来一些隐含的问题:如果一个PHP文件需要使用很多其它类,那么就需要很多的require

PHP的autoload机制的实现解析

扶醉桌前 提交于 2019-11-30 03:23:54
PHP的autoload机制的实现解析 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利 一、autoload机制概述 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都 存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类, 只需要直接使用include/require将其包含进来即可。 下面是一个实际的例子: 复制代码 代码如下: /* Person.class.php */ <?php class Person { var $name, $age; function __construct ($name, $age) { $this->name = $name; $this->age = $age; } } ?> /* no_autoload.php */ <?php require_once ("Person.class.php"); $person = new Person("Altair", 6); var_dump ($person); 在这个例子中,no-autoload.php文件需要使用Person类,它使用了require_once将其包含

php autoload机制学习

拈花ヽ惹草 提交于 2019-11-30 03:23:37
在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子: 01 /* Person.class.php */ 02 <?php 03 class Person { 04 var $name , $age ; 05 06 function __construct ( $name , $age ) 07 { 08 $this ->name = $name ; 09 $this ->age = $age ; 10 } 11 } 12 ?> 13 14 /* no_autoload.php */ 15 <?php 16 require_once ( "Person.class.php" ); 17 18 $person = new Person(”Altair”, 6); 19 var_dump ( $person ); 20 ?> 在这个例子中,no-autoload.php文件需要使用Person类,它使用了require_once将其包含,然后就可以直接使用Person类来实例化一个对象。 但随着项目规模的不断扩大,使用这种方式会带来一些隐含的问题

Is there any native PHP function which throws an built-in Exception?

江枫思渺然 提交于 2019-11-30 02:41:46
问题 While answering PHP rename() doesn't throws exception on error I was wondering if there are any native PHP functions which throw a built-in Exception, beside the SPL stuff? 回答1: Not really. If you read the note on that page you linked: Note: Internal PHP functions mainly use Error reporting, only modern Object oriented extensions use exceptions . However, errors can be simply translated to exceptions with ErrorException. 回答2: PDO can be configured to throw exceptions 回答3: PHP 5 has an