文章851
标签121
分类10

一个简陋的 PHP View 适用于Swoole

仅支持 向模板传递变量

    /**
     * 视图 
     * @param array $params 模板变量
     * @param string $method 视图模板
     * @return mixed|string
     */
    public static function view(array $params = [], $method = ''): string
    {
        // 利用堆栈追踪回溯
        $array = debug_backtrace();
        $file = $array[0]['file'] ?? '';
        $method = $method ?: ($array[1]['function'] ?? '');

        $fileDir = rtrim($file, '.php');
        $viewFile = str_replace('Controller', 'View', $fileDir . DS . $method) . '.phtml';
        if (!file_exists($viewFile)) {
            return "<h1 > {$method} 404 </h1>";
        }

        // 捕获 模板 html 赋值到变量
        ob_start();
        include $viewFile;
        $html = ob_get_contents();
        ob_end_clean();

        if ($params) {

            // 批量赋值
            foreach ($params as $k => $v) $$k = $v;

            // 替换变量
            preg_match_all('/{(.*)}/i', $html, $list);
            foreach ($list[1] as $var) {
                $tmp = $$var ?? '';
                $html = str_replace('{' . $var . '}', $tmp, $html);
            }
        }

        return $html;
    }

PHP 获取调用者的方法和行数(查看堆栈调用)

PHP 获取调用者的方法和行数(查看堆栈调用)

    $array = debug_backtrace();
    foreach ($array as $row) {
        var_dump($row['file'] . ':' . $row['line'] . '行,调用方法:' . $row['function']);
    }

MYSQL 更新字段,向字段追加字符串

在 MySQL 中更新字段并向字段追加字符串

简介

在使用 MySQL 进行数据库操作时,经常会遇到需要更新字段并向字段追加字符串的情况。本篇博客将介绍在 MySQL 中更新字段并向字段追加字符串的基本语法和使用示例。

更新字段并向字段追加字符串的语法

使用 UPDATE 语句可以更新 MySQL 表中的字段,并通过字符串连接函数将字符串追加到字段的末尾。以下是更新字段并向字段追加字符串的基本语法:

UPDATE table_name
SET column_name = CONCAT(column_name, 'appended_string')
WHERE condition;

在上述语法中,table_name 是要更新的表名,column_name 是要更新的字段名,appended_string 是要追加的字符串,condition 是更新的条件。

示例

假设有一个名为 users 的表,其中包含 nameemail 两个字段。现在我们想要向 email 字段追加字符串 @example.com

以下是在 MySQL 中更新字段并向字段追加字符串的示例代码:

-- 创建示例表 users
CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  email VARCHAR(100)
);

-- 插入示例数据
INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com');
INSERT INTO users (name, email) VALUES ('Jane Smith', 'jane.smith@example.com');

-- 更新字段并向字段追加字符串
UPDATE users
SET email = CONCAT(email, '@example.com');

-- 查看更新后的数据
SELECT * FROM users;

在上述示例中,我们首先创建了一个名为 users 的表,并插入了示例数据。然后,通过使用 UPDATE 语句和 CONCAT 函数,我们向 email 字段追加了字符串 @example.com。最后,我们使用 SELECT 语句查看更新后的数据。

结论

在 MySQL 中更新字段并向字段追加字符串可以通过使用 UPDATE 语句和 CONCAT 函数来实现。本篇博客介绍了更新字段并向字段追加字符串的基本语法和示例代码。根据您的具体需求,可以根据上述示例进行修改和扩展。

参考文献

MongoDB 模糊匹配字符 $regex

MongoDB 模糊匹配字符 $regex

在MongoDB中,$regex操作符用于执行模糊匹配,允许您在文档中搜索匹配特定模式的字符串。这对于需要灵活查询数据的应用程序非常有用,尤其是在需要进行模糊搜索或正则表达式匹配的情况下。

语法

$regex操作符可以与find()方法一起使用,其语法如下:

{ <field>: { $regex: /pattern/, $options: '<options>' } }

其中:

  • <field>:要进行匹配的字段名。
  • /pattern/:用于匹配的正则表达式模式。
  • <options>:可选参数,用于指定匹配选项,例如'i'表示不区分大小写。

示例

假设我们有一个名为users的集合,其中包含用户信息。我们想要查找所有用户名以字母"A"开头的用户。我们可以使用$regex进行模糊匹配来执行此操作。

db.users.find({ username: { $regex: /^A/ } })

这将返回所有用户名以"A"开头的用户。

应用场景

$regex操作符可以在各种情况下使用,例如:

  • 在搜索引擎中实现模糊搜索功能。
  • 进行文本分析和处理,查找特定模式的文本。
  • 进行数据清洗和转换,根据特定的模式筛选数据。

文献引用

在编写本文时,以下资源对理解MongoDB中$regex操作符的使用非常有帮助:

  1. MongoDB官方文档:Query an Array
  2. Stack Overflow:MongoDB正则表达式查询
  3. MongoDB University:M121:The MongoDB Aggregation Framework

这些资源提供了对$regex操作符的详细解释和示例,有助于更好地理解其在实际应用中的用法。

通过灵活运用$regex操作符,您可以在MongoDB中轻松实现各种模糊匹配和正则表达式查询,从而满足不同应用场景的需求。

shell 脚本获取今天、昨天、前天以及n天前的日期

1、获取今天的日期

log=$(date -d "now" +%Y-%m-%d)
echo ${log}

2、获取昨天的日期

log2=$(date -d "yesterday" +%Y-%m-%d)
echo ${log2}

或者

log2=$(date -d "1 day ago" +%Y-%m-%d)
echo ${log2}

3、获取前天的日期

log3=$(date -d"2 day ago" +%Y-%m-%d)
echo ${log3}

4、获取具体日期的前几天

log4=$(date -d"15 day ago 2017-04-16" +%Y-%m-%d)

echo ${log4}

输出:2017-04-01

">