искаженный юникод / ​​шестнадцатеричный в php - PullRequest
0 голосов
/ 19 октября 2011

Я хочу дать текст DIV.Этот текст содержит HTML-теги, поэтому я подумал, что этого достаточно, чтобы избежать символов "и". Полный код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
</head>
<body>
<div id="lay">.</div>
<?php
 $a = 'Missing<hr />argument 3 for Class::method(), called in X:\directory\dir2\dir3\x';
 $a = str_replace(array("\"", "'"), array("&quot;", '&#039;'), $a);
?>
<script type="text/javascript">
 document.getElementById('lay').innerHTML = '<?php echo $a; ?>';
</script>
</body>
</html>

, но firefox сказал, что он некорректен. Даже htmlspecialchars () не работает.строка? А почему не получается?

Ответы [ 3 ]

3 голосов
/ 19 октября 2011

Просто используйте addslashes примерно так:

 $a = 'Missing<hr />argument 3 for Class::method(), called in X:\directory\dir2\dir3\x';
 $a = addslashes($a);
 $a = str_replace(array("\"", "'"), array("&quot;", '&#039;'), $a);

Как документация гласит :

Возвращает строку с обратными слешами перед символами, которые необходимозаключаться в кавычки в запросах к базе данных и т. д. Это символы одинарных кавычек ('), двойных кавычек ("), обратной косой черты () и NUL (байт NULL).

1 голос
/ 29 мая 2012

Я получил решение для этого.Я отображал изображение, используя физический путь в браузере: "D: /wamp/www/project/images/imag.png"

-> неправильная последовательность символов Unicode

Я установил его на URLтогда это решило мою проблему "http://siteurl/images/imag.png"

1 голос
/ 19 октября 2011

"\ x" в конце вашей строки теперь пытается ожидать шестнадцатеричную цифру, необходимую вам, чтобы избежать косой черты перед x.

попробуйте добавить три слеша

$a = 'Missing<hr />argument 3 for Class::method(), called in X:\directory\dir2\dir3\\\x';

...