2016-04-04 15 views
0

Daha sonra bir veritabanına kaydetmek için bir XML kodunu PHP'de bir dize olarak kaydetmeye çalışıyorum. Ancak, XML, "" veya "" kullanırsam her zaman yürütülecek gibi görünüyor.XML kodunu PHP'de dize olarak kaydetme

$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>'; 

Neyi yanlış yapıyorum?

+2

Hangi davranışı beklediniz ve hangi davranışı alıyorsunuz? – JayIsTooCommon

+0

$ $ = 2 = bekleniyor; $ Cxml = '' 've ben $ cxml = 1192' – prgrm

cevap

1

sadece &gt;

$variable = 12345; 
$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>'; 
$temp_var1 = str_replace('<','&lt;',$Cxml); 
$temp_var2 = str_replace('>','&gt;',$temp_var1); 
echo $temp_var2; 

Çıkış ile &lt; ve > ile < değiştirin: <Conds><C><FieldNo>119</FieldNo><Filter>12345</Filter></C></Conds>

güncelle:

htmlspecialchars() işlevi, aynı çıktı üretir. Örneğin:

$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>'; 
echo htmlspecialchars($Cxml); 

Açıklama:

HTML karakter kodlayıcı karşılık gelen HTML varlıkları tüm karakterleri dönüştürür. Bazı karakterler HTML'de özel bir öneme sahiptir ve anlamlarını korumak için doğru HTML varlıklarına dönüştürülmelidir. Örneğin, karakterini, HTML sözdiziminde kullanıldığı gibi etiket oluşturmak ve kapatmak için kullanmak mümkün değildir. Bir HTML sayfasının içeriğinde görüntülenecek karşılık gelen &lt; HTML öğesine dönüştürülmelidir. HTML öğesi adları büyük/küçük harf duyarlıdır.

+0

Teşekkür' alıyorum. Ancak çıktı, veritabanına kaydetmeye çalıştığımda tarafından değiştirilir. – prgrm

İlgili konular