Амперсанд в конце строки не виден в браузере - PullRequest
1 голос
/ 07 декабря 2009

Я печатаю строку, как показано ниже

Код:

echo "&words=".$rs['pw']."&"; 

Выход:

& слова = Помощь | Good

Обратите внимание, что последний & не напечатан.

Но когда я добавляю пробел после &, он печатается, как показано ниже

Код:

echo "&words=".$rs['pw']."& "; 

Выход:

и слово = Помощь | Good &

Теперь напечатано &.

Почему это происходит и в чем причина такого поведения?

Ответы [ 3 ]

4 голосов
/ 07 декабря 2009

Если вы выводите его в веб-браузер, вы должны экранировать & с помощью &amp; "&" в HTML часто используется для экранирования строк, а в URL-адресах - специальный символ, такой как <> и т. Д. .

1 голос
/ 07 декабря 2009

Если вы выводите его на веб-странице, браузер интерпретирует & спец. Выберите «Просмотр источника» в вашем браузере, и вы увидите необработанный вывод. Если вам нужно, чтобы он отображался в HTML-контексте, вам придется пропустить строку через htmlspecialchars перед ее печатью. Итак:

$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");
1 голос
/ 07 декабря 2009

Этот код работает для меня

$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";

выход

и слово = Помощь | Good &

Что приводит меня к вопросу: каков контекст? Где этот код выводится, вы запускаете его на веб-сервере и просматриваете в браузере? Разве нет другого кода, который может быть причиной этого?

Если контекст похож на вывод в HTML, вам нужно убедиться, что он находится в нужном месте. В HTML амперсанд является особенным, и вы должны избежать его. Обычно это означает перевод на &amp;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...