问题标签 [mbstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
396 浏览

php - 什么是从我的 PHP 网站过滤无效的 utf8?

我的网站已完全转换为使用 utf-8(mysql、http 标头、PHP mb_string 等)。

我正在做一些渗透测试并尝试将无效的 utf 发布到其中一个脚本(使用 BurpSuite)。

但是,当我发布无效的 utf,只是对 $_POST var 进行十六进制转储时,我发现在尝试使用 mb_detect_encoding 对其进行验证之前,已经对无效的 utf 序列进行了清理。

这对我来说听起来是个好消息,但我想知道哪个层正在转换 POST 数据?

它是 Content-Type HTTP 标头的副作用吗,也许我的网络服务器正在这样做(lighttpd)。或者是 PHP 本身在填充 $_POST 时这样做?

我希望看到无效的 utf 十六进制转储,让我自己清理它。

0 投票
2 回答
1529 浏览

php - php 在 mb_substr() 之后找到最近的空格字符

我需要将字符串剪切为大约 160 个字符,但我想通过最近的空格字符进行剪切。mb_使用 UTF-8 字体(函数)会使任务恶化。我的代码如下:

有谁知道更优雅的方式?

0 投票
2 回答
2561 浏览

php - 使用 mbstring 在 PHP 中将 Unicode 引用转换为 UTF-8 字符

0 投票
1 回答
21088 浏览

php - 用问号替换无效的 UTF-8 字符,mbstring.substitute_character 似乎被忽略了

我想用引号(PHP 5.3.5)替换无效的 UTF-8 字符。

到目前为止,我有这个解决方案,但无效字符被删除,而不是被“?”替换。

应该输出:

但目前输出:

有什么建议吗?

你会用另一种方式(preg_replace()例如使用 a 吗?)

谢谢。

0 投票
4 回答
5712 浏览

php - php找不到分割utf-8字符串的方法

0 投票
1 回答
2375 浏览

php - 如何仅为 1 个主机启用 php mb_string?

我有一台带有 cPanel 的 centOS 机器。我们已经用 mb_string 编译了 PHP,它工作正常。我们想在除一个以外的所有主机帐户中禁用它,因此我们在 php.ini 中禁用了它,但希望在特定主机中启用它。

我知道这可以通过 apache 的 .htaccess 文件实现。但是如何,以及什么命令?有什么见解吗?

谢谢 !

0 投票
1 回答
7347 浏览

php - PHP :mbstring 模块安装

我试图为 PHP 安装 mbstring 模块。我输入了以下命令:

模块现已安装,但错误并没有消失。

在我的 phpinfo() 中,“mbstring”不存在...

操作系统:centos 6 PHP:5.3.8

0 投票
8 回答
30877 浏览

php - PHP中的多字节修剪?

显然家庭mb_trim中没有,所以我正在尝试为自己实现一个。mb_*

我最近在php.net的评论中发现了这个正则表达式:

因此,我将通过以下方式实现它:

正则表达式对我来说似乎是正确的,但我对正则表达式非常陌生。这会有效地删除字符串开头/结尾的任何Unicode 空间吗?

0 投票
11 回答
215237 浏览

php - 如何在 CentOS 6.2 上安装 PHP mbstring

如何在 CentOS 6.2 上使用 PHP 安装 mbstring

我试过了:

但是没有找到包裹?

0 投票
0 回答
1659 浏览

php - 无法加载 mbstring 模块

在 CLI 中运行脚本我收到此错误:

一些背景。

使用 MySQL 和 Apache2.2(目前都可以使用)运行 Windows 7(称之为工作约束)

我知道这个函数是模块 php_mbstring.dll 的一部分

我将尝试一个详尽的清单来加载它:

  • 已验证的 php.ini 位置;phpinfo 表示加载的文件在c:\php;配置文件位于 c:\windows 中(两个位置 - 都具有相同的 .ini 文件)
  • php.ini 文件有未注释的 extension=php_mbstring.dll
  • 扩展目录在两个 php.ini 文件中都指定为 extension_dir = "c:\php\ext"
  • 指定的文件 (php_mbstring.dll) 实际上存在于指定的目录 c:\php\ext\php_mbstring.dll
  • 虽然我不明白为什么这会有效,但我已将 dll 移至 php 根目录以及 windows32 目录,如在其他论坛上看到的那样
  • 我确实以相同的方式加载了其他功能性非核心模块(例如mysqli)而没有问题

可能值得注意的是,在加载的配置文件 (c:\php\php.ini) 中取消注释扩展行后,会出现一个附加的系统错误“无法启动,因为您的计算机中缺少 php5.dll”对话框。我尝试在两者中都取消注释并得到相同的错误。

我怀疑有一种方法可以在不重新编译或重新安装 PHP 的情况下加载此模块。