Я создаю PHP-скрипт для изменения текста в HTML-документе для обработки плохо преобразованных ивритских PDF-файлов. (sigh :))Почему я получаю тарабарщины?
Все работает, однако сценарий имеет очень странный выход. Только НЕКОТОРЫЕ из персонажей, вместо того, чтобы оставаться ивритскими буквами, превращаются в пустые символы (эти черные бриллианты с вопросительными знаками).
Я пробовал какое-то решение, которое я мог найти на SO и за его пределами, но ничего не изменилось. Может быть, вы можете просветить меня?
Вы можете проверить сценарий в действии здесь: pilau.phpnet.us/html_invert.php, и это весь исходный код:
<!DOCTYPE html>
<html lang="he-IL">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form action="html_invert.php" method="post" enctype="application/x-www-form-urlencoded">
<textarea id="html_code" name="html_code" rows="30" cols="80"><?php
if (isset($_POST['html_code']))
{
function invert_string ($str) {
$new_str = '';
$i = strlen($str);
while ($i > 0) {
$new_str .= substr($str, --$i, 1);
}
return '>'.$new_str.'<';
}
echo htmlspecialchars(preg_replace('/>(\s*.*\s*)</imUue', 'invert_string("$1")', stripslashes($_POST['html_code'])));
}
else { echo 'paste your text here'; }
?></textarea>
<br />
<input type="submit" value="Process HTML" />
</form>
</body>
</html>
Вы хотите '' mb_substr' и mb_strlen' для безопасности многобайтовой. – geoffspear
Кроме того, я не думаю, что 'stripslashes' является безопасным UTF. – Matthew
Я не получил никакого вывода из ссылки. – RyanS