5

Bir müşteri için CMS geliştiriyorum ve o şeyleri düzenlemesi ve ç ve ® gibi özel karakterleri kullanması gerekiyor. Ancak, ® gibi karakter kodlarını girmesini istemiyorum. Bu karakterleri PHP kullanarak otomatik olarak dönüştürmenin iyi bir yolu var mı?Özel karakterleri HTML karakter kodlarına dönüştürün

+4

Err. Sadece karakter kodlamanızın tutarlı olduğundan emin olun (yani sadece UTF-8'i kullanın) ve bu karakterleri mükemmel bir şekilde göstermesi için dönüştürmeniz gerekmez. – Quentin

cevap

14

() bunu yapmak için.

php -r 'echo html_entity_decode("®ç", ENT_COMPAT, "UTF-8"), "\n";' 
®ç 

Eğer unicode kullanmıyorsanız, charset adını ihmal veya doğru charset vermek:

php -r 'echo htmlentities("®ç", ENT_COMPAT, "UTF-8"), "\n";' 
®ç 

) (html_entity_decode kullanın geri okunabilir metne varlıkları açın.

+1

+1 çalışır. –

+0

Birkaç yıldır birlikte yaşadığım bir sorunu çözen harika bir cevap. Kodunuzu işletim sisteminden işletim sisteminize taşıdığınızda, kopya yapıştırma veya kodun ALT KeyCode sürümünü kodlayan diğer yanıtlardan bazılarının işe yaramayacağını unutmayın. –

2
Kullanım unicode

ve nasıl kullanabilirsiniz

+4

-1. Bu nasıl bir cevap? –

+3

@Alin * Bu * kötü bir cevap, diyebilirim - eğer müşteri zaten ç ve ® gibi karakterler kullanıyorsa, UTF-8'i kullanıyorsa, CMS'nin girişi, saklanması ve çıkışı için, HTML varlıklarına olan ihtiyacı ortadan kaldırmak için. Tıpkı bu web sayfasında yaptığı gibi, örneğin, "®" yazarak siteye gönderdim ve siteyi "®" olarak görüntüledi - bu sayfanın kaynak koduna bakın ve Orada bir HTML varlığı, sadece gerçek, gerçek karakter gör. –

+0

@MattGibson Bir sorun, kaynak denetimi kullanırsanız ve kodunuzu unix tabanlı işletim sistemleri ve windows işletim sistemleri arasında ileri ve geri hareket ettirirseniz olur. ALT anahtar kodlarının işletim sistemlerinde olmasını istediğiniz şekilde çalışmadığı zor yoldan öğrendim. –

1

:-) karakter haritadan & macunu kopyalamak için ona göstermek:

htmlentities

+0

Teşekkürler! Kodlamayı belirlemek için :) –

3

en kolay sağdan UTF-8 kullanmak olacaktır başla. DOM ile
Ama aynı zamanda otomatik olarak dönüştürebilirsiniz karakterler: htmlentities kullanabilirsiniz

$dom = new DOMDocument; 
$dom->appendChild(new DOMText('© oui içi » ')); 
echo $dom->saveHtml(); 

çıkışları

© oui içi » 
0

htmlentities işlevine bir bakın. Bu bir dize alır ve bileşen karakterlerini HTML öğelerine dönüştürür. Kullanıcının girişi ile tutarlı olacak şekilde dizginin kodlamasını belirtebilirsiniz.

+0

Teşekkür ederiz! İşe yarıyor :) –

İlgili konular