Nasıl doğru HTML Karakterleri girişi dönüştürebilirsiniz

4 Cevap php

Diyelim ki html içeren bir dosyayı dahil ediyorum diyelim. Html ünlem semboller, İspanyol aksan (á, ó) gibi karakterler var. Çözümlü dahil metin yerine kendi doğru değer sembolü olarak işlenmiş olur. Bu FF ancak IE üzerinde olur (8).

Ben aşağıdaki fonksiyonları denedim:

htmlspecialchars, htmlentities, utf8_encode

include htmlentities("cont/file.php");

Numune file.php içeriği:

<div>Canción, “Song Name”</div>

Çıktı:

Canci�n, �Song Name�

4 Cevap

Bu iki farklı sizin kod üzerinde çalışıyorum ve benim hile yapıyor sona budur; neden bilmiyorum ama ayrıştırma şey zor olmak.

> - Bu tarayıcı (FF + IE) gösterdi

alt text

Örnek ** (fonksiyon kullanmayın 'include', yani Çıkış Tampon gerekli değildir):

<?php 
$varr = '<div>ääääääó</div>'; 
echo utf8_encode($varr); 
?>

Bu benim için işe yaramadı:

<?php
   include "test.php";
?>

Html kodu ile bir içerme dosyası kullanarak Yukarıdaki örnek bu karakterler en azından benim için dönüştürmek olmadıysa. Ben dosyayı dahil edilmemiştir için değişti ve utf8_encode ile çalıştı, ama sorun iş din't fonksiyon içerir kullanarak nerede benim kod gerekiyor.

Kullanımları Aşağıdaki sonraki örnek kod render ve utf8_encode kodlama vaki önce ayrıştırılması izin yöntem ve çıkış tampon içerir.

My Code Scenario (benim belirli bir senaryo için dosya da ilk olarak ayrıştırılması gereken kod içeren içerdikleri Ob ile olmalıdır):

ob_start(); 
include ("cont/file.php"); 
$content = ob_get_contents(); 
ob_end_clean(); 
echo utf8_encode($content); 

Bana bunu anlamaya yardım için teşekkürler "Ondrej Slinták"!

Sizin kodu Htmlentities () yoluyla dize "cont / fie.php" çalıştırmak için ama hiçbir şey yapmaz, dosyanın içeriğini bu etkilenmez.

HTML sayfada size bu içeriği incelemekte UTF-8 için kodlamayı ayarlamanız gerekir. htmlentities tüm bu metni etkilemiyor.

Ben kodu aşağıdaki ile aynı şeyler denedim ve iyi çalıştı:

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>TODO supply a title</title>
    </head>
    <body>
        <p>
            TODO write content


            <?php
                include "test.php";
            ?>

            </p>
    </body>
</html>

test.php

<div>ääääääó</div>

Çıktı belirten bir HTTP Content-Type üstbilgisi character encoding Eğer charset parameter in (UTF-8 önerilir) kullanıyorsunuz.