(PHP 5, PHP 7, PHP 8)
DOMDocument::loadHTML — HTML belgeyi bir dizgeden yükler
HTML belgeyi belirtilen dizgeden yükler. XML belge yüklemedeki gibi belgenin iyi biçemli olma gereği yoktur.
Bu işlev, girdiyi bir HTML 4 ayrıştırıcısı kullanarak ayrıştırır. Günümüz tarayıcılarının kullandığı HTML 5 için ayrıştırma kuralları farklıdır. Girdiye bağlı olarak bu farklı bir DOM yapısıyla sonuçlanabilir. Bu nedenle bu işlev HTML temizliği için güvenli bir şekilde kullanılamaz.
HTML ayrıştırılırken davranış, özellikle uç koşulları ve hata işleme
açısından kullanılan libxml
sürümüne bağlı olabilir.
HTML5 belirtimine uyan ayrıştırma için PHP 8.4 sürümünde eklenen
Dom\HTMLDocument::createFromString() veya
Dom\HTMLDocument::createFromFile() kullanılmalıdır.
Örneğin, bazı HTML öğeleri karşılaşıldığında bir üst öğeyi örtük olarak kapatır. Üst öğeleri otomatik olarak kapatma kuralları HTML 4 ve HTML 5 arasında farklılık gösterir ve bu nedenle DOMDocument tarafından görülen sonuç DOM yapısı bir tarayıcının gördüğü DOM yapısından farklı olabilir ve bu da bir saldırganın sonuç HTML kodunu kırmasına olanak tanıyabilir.
source
HTML belgeyi içeren dizge.
options
source
olarak boş bir dizge aktarılırsa bir uyarı
üretilir. Bu uyarıyı libxml üretmez ve libxml'in hata işlevleri ile elde
edilemez.
Bozuk bir HTML sayfa başarıyla yüklense bile bu işlev hatalı bir imlenim ile
karşılaştığında bir E_WARNING
iletisi üretebilir. Böyle
bir durumu atlatabilmek için
libxml'in hata
işleme işlevleri kullanılabilir.
Sürüm: | Açıklama |
---|---|
8.3.0 | Bu işlevin dönüş türü artık deneysel bool türünde. |
8.0.0 |
Bu işlevin duruk olarak çağrılması artık Error
oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.
|
Örnek 1 - Bir HTML belge oluşturmak
<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>