PHP SSE实时推流 apache服务不能实时推流问题

公司有项目需要用户sse实时推流, EventStream(也称为 Server-Sent Events (SSE))是一种基于 HTTP 协议的单向通信方式,允许服务器向浏览器(或其他客户端)推送实时事件。与 WebSocket 不同,SSE 仅支持服务器到客户端的单向数据流,通常用于实时应用(如股票报价、新闻更新、实时通知等)。
后来调试了很久, 也不能实现实时推流, 后来把本地的服务器改成nginx的就能实时推流了, 我以为是apache的问题, 因为线上的项目服务器用的就是apache, 就各种调apache的参数, 也没能解决, 我后来偶然灵机一动, 在线上调式, 把协议改成https的他就能实时推流了, 目前还不知道原因, 知道原因的可以讨论下

标签: PHP基础

wen 发布于  2024-11-14 10:55 

怎么屏蔽一些敏感词 其它

在游戏和小说中屏蔽敏感词可以采用一种常见的方法,即使用敏感词过滤字典和替换规则。以下是一个基于 PHP 的简单示例代码:

<?php
$sensitiveWords = ['敏感词1', '敏感词2', '敏感词3']; // 敏感词列表

$content = '这是一段包含敏感词的文本,敏感词1和敏感词2都应该被替换。'; // 要处理的文本内容

$replacement = '*'; // 替换敏感词的符号

foreach ($sensitiveWords as $word) {
    $pattern = '/'.preg_quote($word, '/').'/iu'; // 创建正则表达式模式,忽略大小写和 Unicode 字符

    $content = preg_replace($pattern, $replacement, $content);
}

echo $content; // 输出处理后的文本内容
?>

在上述代码中,我们使用了一个敏感词列表 $sensitiveWords,其中包含要屏蔽的敏感词。然后,我们定义了要处理的文本内容 $content

接下来,我们使用 foreach 循环遍历敏感词列表。在循环中,我们使用 preg_quote() 函数来转义敏感词中的特殊字符,然后将其作为正则表达式模式的一部分。

通过使用 preg_replace() 函数,我们可以将匹配到的敏感词替换为指定的符号。在示例中,我们使用 $replacement 变量定义了替换敏感词的符号(此处为一个星号)。

最后,我们输出处理后的文本内容。

请注意,该示例仅提供了一个简单的敏感词过滤方法。在实际应用中,可能需要更复杂的过滤逻辑,例如考虑部分匹配、词语组合等。此外,为了提高性能,可以使用更高效的算法和数据结构,例如 Trie 树等。还需要注意,敏感词过滤只能作为一种辅助手段,无法完全避免敏感内容的出现,因此还应结合其他措施来确保内容的安全性。

标签: PHP基础

wen 发布于  2023-6-9 17:43 

下载文件时文件只下载一小段就直接跳到下载完成 PHP

分享一个我今天遇到的案例!
网站上用户付款后, 下载一个600多兆的文件, 没下载下来. 下载到一小段是就直接跳转完成.
我当时以为是服务器有限制下载文件大小. 我这边服务器为LAMP(Linux,Apache,MySQL,PHP)环境, 检查了Apache的配置没有限制大小.
然后我又检查了服务器用户web框架, 我这边用的是drupal7的, 然后检查配置后也没了发现任何问题.
最后我建立个秒表, 用来测试服务器下载文件用时时长, 发现刚好100秒, 跟我的PHP超时时间差不多, 后来又多测了几次, 还是一样, 立马发现可能是链接请求超时, 然后把超时时间改为3600秒, 我这个网站主要用来下载数据的, 可能会耗时很长, 可以这么设置, 问题就解决了.
然后我又在Apache日志翻了翻, 发现果然有超时日志, 我应该先看看Apache日志的, 不然不用耗时这么长时间解决这个问题

标签: PHP基础

wen 发布于  2023-6-7 13:55 

使用www用户执行composer PHP

要使用 www 用户执行 Composer 命令,你可以使用以下步骤:

打开终端或命令行界面。

切换到你的项目所在的目录,即包含 composer.json 文件的目录。

运行以下命令以切换到 www 用户:

sudo -u www -s

注意:www 是常见的用于 Web 服务器的用户,但具体的用户可能因系统而异。你可以根据你的服务器设置和配置替换 www 为正确的用户。

在 www 用户的终端中,你可以运行 Composer 命令来执行你所需要的操作,例如:

composer install
composer update
composer require <package-name>

这将使用 www 用户身份执行 Composer 命令。

请注意,使用 sudo 命令切换到 www 用户需要具有足够的权限。如果你没有足够的权限,你可能需要联系服务器管理员或具有适当权限的用户来执行 Composer 命令。

介绍sudo的参数

sudo 是一个用于以其他用户身份执行命令的实用程序。它可以让普通用户以超级用户(例如 root 用户)或其他指定用户的权限来执行特权操作。以下是常见的 sudo 命令的参数和选项的介绍:

-u 或 --user=:指定要切换到的目标用户。例如,sudo -u www-data command 将以 www-data 用户的身份执行 command 命令。
-s 或 --shell:以目标用户的 shell 环境启动一个新的交互式会话。这将切换到目标用户并加载其配置文件,类似于登录到目标用户账户。
-i 或 --login:以登录 shell 的方式切换到目标用户,加载目标用户的完整环境变量和配置文件。
-E 或 --preserve-env:保持当前环境变量,而不使用目标用户的环境变量。默认情况下,sudo 会重置环境变量为目标用户的环境。
-H 或 --set-home:设置目标用户的家目录作为当前工作目录,并使用目标用户的环境变量。
-p 或 --prompt:指定自定义的提示符,提示用户输入密码时显示的消息。
-n 或 --non-interactive:在没有提示输入密码的情况下执行命令。如果用户需要输入密码,则命令将失败而不会等待用户输入密码。
这些只是 sudo 命令的一些常见参数和选项。你可以通过运行 man sudo 命令来查看完整的 sudo 手册页,以获取更详细的信息和其他可用选项。

标签: PHP基础

wen 发布于  2023-5-23 16:07 

PHP 二维数组按照指定的key排序 PHP

PHP多维数组根据指定的key进行排序的方法

标签: PHP基础

wen 发布于  2023-3-30 09:43 

php连接数据库函数 PHP

php连接数据库函数

标签: PHP基础

wen 发布于  2023-3-1 22:08 

php 文件函数 PHP

php 文件函数

标签: PHP基础

wen 发布于  2023-3-1 22:05 

php面向对象 PHP

面向对象:
编程的思想:
1 什么是面向对象
对现实世界的理解和抽象 的方法,一切事物(具体,概念,思想...)都是对象
现实世界中 ---》 代码 抽象成 类 封装 继承.. 方便于人们对现实世界进行抽象和数字建模

标签: PHP基础

wen 发布于  2023-3-1 22:04 

php数据类型 PHP

php数据类型

标签: PHP基础

wen 发布于  2023-3-1 22:01 

php数据类型转换和常量,变量, 预定义变量 PHP

php数据类型转换和常量,变量, 预定义变量

标签: PHP基础

wen 发布于  2023-3-1 22:00