Tarayıcıda görünmeyen dize sonunda ve imi

3 Cevap php

Ben aşağıdaki gibi bir dize yazdırmak am

Kod:

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

Çıktı:

& Kelime = Yardım | İyi

Son & yazdırılır değil dikkat edin.

Ben sonra bir boşluk karakteri eklediğinizde Ama & sonra aşağıdaki gibi basılmış olur

Kod:

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

Çıktı:

& Kelime = Yardım | İyi&

Şimdi & yazdırılır.

Neden onun oluyor ve whats Bu davranışın nedeni?

3 Cevap

Eğer bir web tarayıcısına çıkış iseniz ve kaçan olmalıdır ile &amp; "&" HTML dizeleri kaçmak için bir çok kullanılan, ve URL yani özel bir karakter <> vb gibi, bir

Eğer bir web sayfası içinde çıkış ediyorsanız, o zaman tarayıcı & özel yorumlayacaktır. Tarayıcınızda "view source" Seçin ve ham çıkış görürsünüz. Eğer bir html bağlamda görünen gerekiyorsa, bunu yazdırmadan önce htmlspecialchars ile dize geçmek zorunda olacaktır. Yani:

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

Bu kod benim için çalışıyor

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

Çıktı

Kelime = Yardım & | Good &

Hangi bir soruya yol açar: bağlamı nedir? Nerede bu kod çıktı, bir web sunucusu üzerinde çalışan ve bir tarayıcıda görüntülediğiniz edilir? Bu neden olabilir ilgili başka kod var mı?

Bağlam HTML çıkış gibi bir şey ise, o zaman doğru yerde olduğundan emin olmak gerekir. HTML ve işareti özel olduğunu ve bunu kaçmak gerekir. Genellikle bu &amp; çevrilmesine demektir