0

您好,我正在使用 php,我需要比较我的数组中的数据和读取的验证码中的数据。但我遇到了 html 编码的问题。我的数组中的示例:

"osiemnaście" => 18,

和来自验证码的数据:

osiemnaście

如何比较这些数据?我已经尝试过“html_entity_decode()”但没有结果。

4

3 回答 3

1

看起来像带有重音“s”字符的字符集/编码问题。确保在服务器端和 HTML 端都设置了 UTF-8。

自从我做了很多 PHP 以来已经有一段时间了,但是这个函数可能很有用:http: //php.net/manual/en/function.mb-convert-encoding.php

于 2013-09-19T17:39:59.627 回答
1

为了解码十六进制实体,你必须做一些工作,因为 PHP 内置函数不包括这些。

$string = "osiemnaście";
$string = preg_replace('/\&\#x([a-fA-F0-9]+)\;/me', 'mb_convert_encoding("&#".hexdec("\\1").";", "UTF-8", "HTML-ENTITIES")', $string);

// $string is now  "osiemnaście"

echo ($string == "osiemnaście")
   ? "success"
   : "failure";
于 2013-09-19T17:42:04.660 回答
0

你的选择是反过来做:

htmlentities("osiemnaście") == $captchainput

您必须关心 htmldocument 中的文件和输入编码。

您可以使用 php 定义文档编码:

header('Content-Type: text/html; charset=utf-8');

或在 html 中:<meta charset="utf-8" />

于 2013-09-19T17:39:48.983 回答