PHPCON 2019 看点早知道

一年一度的中国 PHP 开发者峰会 PHPCON 2019 将与 8 月 10-11 号召开。
今年大会将继续邀请国内顶尖专家聚焦业界最前沿话题及各类最佳实践方案,为PHP开发者带来又一次的年度盛会。我们先来看看这次大会都有哪些精彩吧。

关于 PHP 前沿信息:

国内最有影响力的 PHP 技术专家,链家网·技术副总裁 鸟哥,惠新宸,Swoole 开源项目创始人,好未来学而思网校首席架构师 韩天峰。两位业内无人不知的常年驻场嘉宾将继续出席大会并为大家分享最新业界前沿话题。

关于 高性能:

继续阅读

linux单目录文件不要过多,多少是过多?

我们都知道一个文件夹文件不宜过多,文件过多,会导致性能下降,那到底怎样算过多呢?

今天板子决定蹂躏下自己的新mac

因本文旨在讨论相同状态下,性能随单目录文件数量变化而发生的变化,所以未做其他特别设置

准备:
Mac Pro (ssd)一台 (安装ubuntu 12.04 虚拟机 LNMP 环境)
5个文件夹,各分别包含1w、5w、10w、50w、100w个同样内容小文件
压测命令:ab -n 10000 -c 100 ‘http://s1.localhost.com/files.php?num=xxx’

files.php:

$num = empty($_GET['num']) ? 10000 : $_GET['num'];
echo file_get_contents("/..filepath../$num/file_".rand(1,$num));

以下是测试结果:

继续阅读

mysql索引需要了解的几个注意

板子之前做过2年web开发培训(入门?),获得挺多学生好评,这是蛮有成就感的一件事,准备花点时间根据当时的一些备课内容整理出一系列文章出来,希望能给更多人带来帮助,这是系列文章的第一篇

注:科普文章一篇,大牛绕道

索引是做什么的?

索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。
表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。

大多数MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)在B树中存储。只是空间列类型的索引使用R-树,并且MEMORY表还支持hash索引。 继续阅读

各大搜索引擎提交入口备忘

本文整理了各主流搜索引擎的网址提交入口,新做站的您,自然是不能忽视的

1.google

google在第一,倒不是说google在中文搜索里的重要程度,而是人家的专业,几万个url的sitemap,你提交了,也就几天的事,基本就全收录了,冲着这专业,也得最先在这家提交啊

提交入口:https://www.google.com/webmasters/tools/submit-url

google可以注册一个webmaster账户,提交url,提交sitemap,索引统计,点击统计,分析报告,优化建议应有尽有
入口:http://www.google.com/webmasters/

2.百度

继续阅读

分析pdf文件总页数+fgets()函数无法识别换行符问题

有个小需求,批量分析一批pdf文件的总页数,写(找)了个小函数,如下:


function getPageTotal($path){
    if (!$fp = @fopen($path, 'r')) {
        return false;
    }
    $max=0;
    while(!feof($fp)) {
        $line = fgets($fp,255);
        if (preg_match('/\/Count [0-9]+/', $line, $matches)){
            preg_match('/[0-9]+/',$matches[0], $matches2);
            if ($max<$matches2[0]) $max=$matches2[0];
        }
    }
    fclose($fp);
    return $max;
}

实际使用中,发现有极个别文件识别失败,取样分析后,发现出问题的文件都是mac格式的,那自然就是fgets对mac换行符的识别问题了

查了下手册: fgets

Note: If PHP is not properly recognizing the line endings when reading files either on or created by a Macintosh computer, enabling the auto_detect_line_endings run-time configuration option may help resolve the problem.

auto_detect_line_endings 这个运行时配置到是从没注意过,ok、稍作修改


function getPageTotal($path){
    ini_set("auto_detect_line_endings",true);

    if (!$fp = @fopen($path, 'r')) {
        return false;
    }
    $max=0;
    while(!feof($fp)) {
        $line = fgets($fp,255);
        if (preg_match('/\/Count [0-9]+/', $line, $matches)){
            preg_match('/[0-9]+/',$matches[0], $matches2);
            if ($max<$matches2[0]) $max=$matches2[0];
        }
    }
    fclose($fp);
    return $max;
}

问题解决!

关于auto-detect-line-endings的解释:

When turned on, PHP will examine the data read by fgets() and file() to see if it is using Unix, MS-Dos or Macintosh line-ending conventions.

This enables PHP to interoperate with Macintosh systems, but defaults to Off, as there is a very small performance penalty when detecting the EOL conventions for the first line, and also because people using carriage-returns as item separators under Unix systems would experience non-backwards-compatible behaviour.

Note: This configuration option was introduced in PHP 4.3.0

拿到驾照

公允2012年12月22日,完成了一个数次被写入年度计划的“计划“——学车

从8月下旬体检开始,到笔试,小路,大路考,今天终于拿到驾照,在考试都顺利的情况下,总计历时4月,码几个字下来,也许对您有用呢

去年有本很火的书——《寻路中国》,作者花了大量篇幅来感慨中国驾校有多不靠谱,诞生了多少马路杀手,你只有经历过一次学车,才会知道,情况也许远比老外文字描述的更严重

好在,据说以后驾照会越来越难了,还没学的,先不用抱怨,我想,这是好事!

废话告一段落,进入正题

1. 要4个月呢?

是的,不过,实际上真正摸车的时间应该不超过20小时

2. 小路考难吗?

小路考全程电子警察,只要”背“好了,就不会有问题

3. 大路考必须交钱才能过吗?

确实听过许多没交钱(上海的”行规“据说是200一个)被故意刁难不让过的,我在考试前也是非常忐忑(倒不是我骨头硬,只是我报的驾校,不容许收这个钱,否则教练会被重罚),但最后也马马虎虎补考通过了(当天一次不及格,可以有一次直接补考机会),因此,交钱应该不是必须的,但确实交过钱的,可以明显发现考官的“尺度松”

4. 最好的学车时间

之所以学车计划年复一年被搁置,我是路痴自然是一个原因,不过最大的原因还是因为时间,一共只有2个月的时间(理论考后),所以起码要保证每个周末都有空(一般教练即便只能分到30分钟给你练车,也会要你在驾校呆上一天),还得再请出几天假去考试,当然,如果有一次没过,时间您再算算,所以,最好的学车时间是在那美丽的大学时光

5. 怎么搞定教练

放弃搞定教练的想法吧,10个教练9个凶,8个骂人,7个收礼,还有1个被你投诉后挺客气的给你穿小鞋,被骂骂就忍了吧,练车顺便再练个好脾气,实在不行,回去看一遍《霸王别姬》,那时候,都那么教徒弟呢

最后,注意行车安全,你看那,马路上一个个,尽是杀手