Здравствуйте, im, используя php, мне нужно сравнить данные из моего массива и данных с прочитанного кода. Но у меня проблема с кодировкой html. Пример из моего массива:
"osiemnaście" => 18,
и данные от captcha:
osiemnaście
Как сравнить эти данные? Я уже пробовал "html_entity_decode()", но результатов не было.
Чтобы декодировать шестнадцатеричные объекты, вам придется немного поработать, поскольку встроенная функция 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";
Похож на проблему с символьным набором/кодировкой с характерным акцентом. Убедитесь, что вы устанавливаете UTF-8 как на сервере, так и на стороне HTML.
Прошло много времени с тех пор, как я сделал много PHP, но эта функция может быть полезна: http://php.net/manual/en/function.mb-convert-encoding.php
Вы можете сделать это по-другому:
htmlentities("osiemnaście") == $captchainput
Вы должны заботиться о своем file- и кодировке ввода из htmldocument.
Вы можете определить документацию с помощью php:
header('Content-Type: text/html; charset=utf-8');
или в html: <meta charset="utf-8"/>