如何使用PHP在字符串中保留原始\ x代码?

时间:2019-04-19 16:06:41

标签: php utf-8

因此,我有一个带有\ x代码的字符串,例如“ \ xA3”,并且以UTF-8编码进行打印将在这种情况下打印出正确的符号,例如£。

但是如何保留原始表示形式,以便仅打印\ xA3?

我已经尝试过使用str_replace("\\x", "\\x", $xcodes),也曾经尝试过preg_replace('#\\\\x\w+#', '\\x', $xcodes),但是都行不通。

编辑1: 请注意,这些字符串来自外部来源,因此在PHP中使用单引号/双引号没有区别。一旦直接按原样打印它们,这些字符就会转换为符号,这就是为什么我想找到一种保留\ x代码并查看原始显示的原因。

编辑2: 字符串来自用户代理,带有\ xA3 \ xA9之类的代码(是的,Shellshock漏洞测试),因此当我运行以下命令时:

$ua = $_SERVER['HTTP_USER_AGENT'];
// Prepare query with PDO, "insert into user_agents (values) values (:ua)"
// Define placeholder :ua as string $ua.
// Execute insert query.

MySQL将返回“无效的字符串值,\ xA3 \ xA9”错误。这是为什么我要保留十六进制代码表示形式的部分原因,而且还可以使我看到不可打印的字符。

因此,我看到的是“ Chrome 70.45 \ Ax3 \ xA9”,而不是“ Chrome 70.45 [不可打印字符]”。

0 个答案:

没有答案