Karp 的技术博客
编程语言
PHP Xdebug 调试代码

在 PHP 开发中,调试是一个非常重要的环节。Xdebug 是一个强大的 PHP 扩展,提供了丰富的调试功能,可以帮助开发者快速定位问题。本文将介绍如何安装和配置 Xdebug,以及如何使用它进行代码调试。

编程语言
PHP 信号量关闭进程

今天修改写脚本需要用到信号量控制脚本
下面是信号量控制类

数据库
PHP ERROR Maximum function nesting level..
 Uncaught Error: Maximum function nesting level of '256' reached, aborting!
编程语言
PHP 雪花算法收藏

需要注意的 $twepoch 变量一定要在项目初始化时重置为当前最新时间
该方法 存在一定问题使用3年左右 会存在 - 符号

编程语言
Swoole 日志 部分代码
/**
 * @desc work进程内日志 仅限work 进程内使用
 * @author lbf
 * @param $msg
 * @param string $name
 *------------------------------------------------------
 */
public static function Wlog($msg, $name = Log::MATCH)
{
    if (!Main::WRITE_DEBUG_LOG && $name == Log::DEBUG) return;

    $name = $name == Log::DEBUG ? Log::MATCH : $name;
    $name = $name == Log::SQL ? Log::MATCH : $name;

    $str = '';
    if (is_array($msg)) {
        foreach ($msg as $key => $val) {
            if (is_array($val))
                $val = json_encode($val);
            $str .= " {$key} {$val}";
        }
    } else {
        $str = $msg;
    }

    $worker_id = APP::getWorkerId();
    if ($worker_id < 0) {
        $worker_id = 'task';
    }
    $date = date('Y/m/d H:i:s');
    $no = date('Ymd');
    $log_dir = LOG_PATH . DS . self::getLogName();
    if (!is_dir($log_dir)) {
        @mkdir($log_dir, 0755, true);
    }
    $file_name = LOG_PATH . DS . self::getLogName() . DS . $name . '-' . $worker_id . '-' . $no . '.log';
    $data = "[" . $date . "]";
    $data .= " _" . APP::getUniqueLogId() . "_";
    $data .= " @ " . $str . "\n";

    file_put_contents($file_name, $data, FILE_APPEND);
}