分类目录归档:PHP程序设计

PHP 仿 Word 统计文章字数

function comment_count_word($str)
{
    $str = preg_replace('/[\x80-\xff]{1,3}/', ' ', $str, -1, $n);//匹配中文或中文下的符号
    $str = preg_replace('/[-\_\.!@#\$%\\\^&\*\)\(\+=\{\}\[\]\/",\'<>~\·`\?:;|]/', ' ', $str, -1, $j);//匹配英文下的符号
    $n += $j;
    $n += str_word_count($str);
    if (preg_match('/\d+/', $str)) {
        preg_replace('/\d+/', ' ', $str, -1, $i);
        $n += $i;
    }
    return $n;
}

该方法统计的字数大概和 word 一致,因为 word 统计字数,相连的英文和数字(半角)会计算成一个字,如 all1234 就会统计成一个字。由于我没想到这到底是是怎么一个算法,所以我这边就没法搞了。如果有大佬知道这么搞,求讲解!
继续阅读PHP 仿 Word 统计文章字数

MySQL enum(枚举类型) set(集合类型) 用法

说下写这篇日志的原因:在 MySQL 中存储状态等值时,用的 char、varchar、或 tinyint,很少使用 enum 或 set。

从个人角度感觉,enum(枚举类型)、set(集合类型)更直观(它适用于业务功能已经确定,否则后期要频繁维护表结构。),但,总用 FIND_IN_SET 查询 set 很是麻烦。网上找了好些时间,才找到方法。因此记录下。

enum 可存储 65535 项值。这有点像 HTML 中的单选框。
set 可存储 64 项值。这有点像 HTML 中的 复选框。

下面将介绍常规用法:

其中 set 类型查询时,可以通过 FIND_IN_SET、LIKE 以及位运算符。首推位运算。

继续阅读MySQL enum(枚举类型) set(集合类型) 用法

Windows PHP 安装 pthreads 扩展

注意:
现在仅支持 PHP 7.2+ 这是由于 PHP 7.0 和 7.1 上的 ZTS 模式存在安全问题。
摘自:https://github.com/krakjoe/pthreads

停止 PHP 7.4 的 pthread 开发
我不再打算维护 pthread,也不想鼓励对其进行维护:我认为,这样做被设计所破坏并加以修复,根本不值得。
我已经开始开发与未来兼容的新扩展程序:https://github.com/krakjoe/parallel
尽管它与 pthreads 不兼容,也不会兼容,但我认为它是即将到来的 PHP 版本的唯一可行替代品,而我的重点必须放在这上面。
当 7.4 于今年年底进入 RC 阶段时,该存储库将被存档,并且在 PECL 或此存储库中不会再发布 pthread。

感谢贡献者对 pthread 所做的所有努力,您辛勤工作,我对此表示赞赏,并且我想请今天专注 pthread 的任何人都将重点转移到未来和 parallel。
接自:https://github.com/krakjoe/pthreads/issues/929


pthreads 是一组允许用户在 PHP 中使用多线程技术的面向对象的 API。 它提供了创建多线程应用所需的全套工具。 通过使用 Thread, Worker 以及 Threaded 对象,PHP 应用可以创建、读取、写入以及执行多线程应用,并可以在多个线程之间进行同步控制。

建议使用 parallel 作为替代。

不可以在 web 服务器环境中使用 pthreads 扩展, PHP 多线程开发仅限于命令行模式的应用。

只能在 PHP 7.2+ 版本中使用 pthreads (v3) 扩展, 在 PHP 7.0 和 7.1 版本中,ZTS 模式是不安全的。

继续阅读Windows PHP 安装 pthreads 扩展