PHP bir sayfanın başlığını Başlarken

5 Cevap php

Ben uzak bir webiste unvanını almak istiyorum, ben bu komut dosyasını kullanın:

function get_remotetitle($urlpage) {
    $file = @fopen(($urlpage),"r");
    $text = fread($file,16384);
    if (preg_match('/<title>(.*?)<\/title>/is',$text,$found)) {
        $title = $found[1];
    } else {
        $title = 'Title N/A';
    }
    return $title;
}

Ben desenli bir webiste başlık parase zaman
Ama, ben "" olsun. Ben phpMyAdmin bakmak Ama eğer, ben doğru aksan bakın. Ne oluyor?

5 Cevap

Ben onu çözdüm. Ben ilave htmlentities($text) ve şimdi aksan ve böylece görüntüler.

Bu büyük olasılıkla bir karakter kodlama konudur. Muhtemelen doğru karakteri alıyorsanız ama bu doğru göstermek değil bu yüzden görüntüler sayfasında yanlış karakter kodlaması vardır.

kontrol PHP Simple HTML DOM Parser

bunu gibi bir şey kullanabilirsiniz:

$html = file_get_html('http://www.google.com/');
$ret = $html->find('title', 0);

Sorun metni bunu görüntülediğiniz sayfada kullanarak konum ne farklı bir kodlama olmasıdır.

Ne yapmak istediğinizi verileri şifreleyen ve kendinizi kullandığınız kodlamaya dönüştürerek (kullanmakta olduğu gelen metni almak sayfasını kodlayan ne bakarak örneğin) dışarı bulmak.

(-> ISO-8859-1 UTF8) utf8_encode (ISO gerçek dönüşüm yaparak, sen, utf8_decode (genel durum için) iconv kullanabilirsiniz -8.859-1 -> UTF8) ya da mb_convert_encoding.

Eğer kaynak sayfanın kodlama ne olduğunu öğrenmek yardımcı olmak için, örneğin kodlamayı otomatik olarak algılar w3c Validator ile web koyabilirsiniz.

Kodlamasını belirlemek için otomatik bir yol isterseniz, HTML kendisi bakmak gerekecek. Eğer seçilen charset belirleyebilirsiniz yolları HTML 4 specification olarak fonud edilebilir.

Buna ek olarak, bu kodlama üzerinde biraz daha fazla bilgi için The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) bakmak zorunda değer.

Bu deneyin:

echo iconv('UTF-8', 'ASCII//TRANSLIT', $title);