大部分PHP函数的函数名从字面上都可以理解其用场,但是当你看到 glob() 的时候,你大概并不知道这是用来做什么的,实在glob()和scandir() 一样,可以用来查找文件,请看下面的用法:
// 取得所有的后缀为PHP的文件
你还可以查找多种后缀名:
// 取PHP文件和TXT文件
你还可以加上路径:
$files = glob(‘../images/a.jpg’);
除此之外,
MySQL数据库对每个客户端连接都会分配一个线程,以是连接非常宝贵。开拓一个异步的MySQL代理做事器,PHP运用做事器可以长连接到这台Server,既减轻MYSQL的连接压力,又使PHP保持长连接减少connect/close的网络开销。
此Server考虑到了设置了数据库连接池尺寸,区分忙闲,mysqli断线重连,并设置了负载保护。基于swoole扩展开拓,io循环利用epoll,是全异步非壅塞的,可以应对大量TCP连接。
程序的逻辑是:启动时创建N个MySQL连接,收到客户端发来的SQL后,分配1个MySQL连接,将SQL发往数据库做事器。然后等待数据库返回查询结果。当数据库返回结果后,再发给对应的客户端连接。
class DBServer
{
protected $pool_size = 20;
protected $idle_pool = array(); //空闲连接
protected $busy_pool = array(); //事情连接
protected $wait_queue = array(); //等待的要求
protected $wait_queue_max = 100; //等待行列步队的最大长度,超过后将谢绝新的要求
/
@var swoole_server
/
protected $serv;
function run()
{
$serv = new swoole_server(\"大众127.0.0.1\"大众, 9509);
$serv->set(array(
'worker_num' => 1,
));
$serv->on('WorkerStart', array($this, 'onStart'));
//$serv->on('Connect', array($this, 'onConnect'));
$serv->on('Receive', array($this, 'onReceive'));
//$serv->on('Close', array($this, 'onClose'));
$serv->start();
}
function onStart($serv)
{
$this->serv = $serv;
for ($i = 0; $i < $this->pool_size; $i++) {
$db = new mysqli;
$db->connect('127.0.0.1', 'root', 'root', 'test');
$db_sock = swoole_get_mysqli_sock($db);
swoole_event_add($db_sock, array($this, 'onSQLReady'));
$this->idle_pool[] = array(
'mysqli' => $db,
'db_sock' => $db_sock,
'fd' => 0,
);
}
echo \"大众Server: start.Swoole version is [\"大众 . SWOOLE_VERSION . \"大众]\n\公众;
}
function onSQLReady($db_sock)
{
$db_res = $this->busy_pool[$db_sock];
$mysqli = $db_res['mysqli'];
$fd = $db_res['fd'];
还有便是,
Facebook为了优化PHP运作,搭配JIT编 译而打造出虚拟机HHVM。而HHVM虽然拥有快速的实行性能,其为特定用场优化的设计,只能知足小部分的开拓者。反之,Rasmus Lerdorf除了想提升PHP的性能表现外,也想要同时知足高端利用者以及业余利用者的需求,让PHP 7成为兼备性能表现及通用功能的程序措辞。
然而,开拓符合市场上少部分人利用的程序措辞并不是难事,但是PHP项目瞄准许多工具,必须同时符合业余利用者及专业开拓者需求的原则下,开拓难以面面俱 到,由于总是会有部分族群的需求无法被知足,「这就像拿水管大范围的喷洒,而每个人衣服都会被水沾湿一点,但是不会有人的衣服完备湿透。」Rasmus Lerdorf比喻。
不该用外挂框架的PHP的运算性能表现都很精良,但是受到外加框架的影响,原来可以在数秒内处理上千个网页哀求的 PHP,性能大幅低落,变为只能处理数十个哀求。Rasmus Lerdorf表示,在HHVM涌现之前,相较于对PHP性能表现的哀求,利用者比较在意PHP能否降落网页开拓的难度,而这些框架能让开发者的事情变得 比较大略。但是在Facebook推出HHVM后,引出许多重视PHP性能表现的利用者,让Rasmus Lerdorf意识到许多利用者有性能表现的需求。他开始思考如何将HHVM的JIT架构与PHP领悟