2009-12-07 2 views
1

Я напечатать строку, как показано нижеAmpersand в конце строки не видны в браузере

Код:

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

Выход:

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

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

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

Код:

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

Выход:

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

Теперь печатается &.

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

+0

Работает отлично для меня. Кажется, не видно, есть ли проблемы. – mauris

+0

Я не могу придумать, что бы это вызвало, но все равно не печатается, если вы используете одиночные кавычки вместо двойных кавычек для амперсанда? – jeffff

+0

не удалось воспроизвести ошибку. закрыто. – Amarghosh

ответ

4

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

1

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

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

Выход

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

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

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

+0

Да, я запускаю его на веб-сервере и просматриваю его в браузере, а там нет другого кода, я просто видел это, поэтому я удалил весь код, а затем протестировал его, все еще та же проблема. – Prashant

+0

Хорошо, я протестировал его на своем веб-сервере, и он все еще работает. Вы проверили точный код, который я дал, или у вас есть _any_ другой код вообще в вашем файле? Как чтение из базы данных или что-нибудь еще? –

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^