Eksik

eklemek için en iyi yolu

2 Cevap php

Şu anda bazı HTML ayrıştırma ve gerektiğinde etiketler eklemek için bir fonksiyon yazıyorum. Temelde ben bu HTML gibi bir parça var:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse feugiat, nunc at vestibulum egestas.

<script type="c">
    #include &lt;stdio.h&gt; 
    #define debug(var) printf(#var &quot; = %d\n&quot;, var)
    int main(void)
    {
    	int x = 12;
    	debug(x)
    	return 0;
    }
</script>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse feugiat, nunc at vestibulum egestas.

<h3>Test Heading</h3>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ultricies luctus metus ut cursus.

<ol>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
</ol>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ultricies luctus metus ut cursus.

Eğer fark ederseniz paragraf etrafında <p> etiketleri vardır. Ben bu HTML ayrıştırmak ve metnin farklı paragraflara doğru etiketleri eklemek istiyorum. Ayrıca kullanılan her türlü ayrıştırıcı, bu diğer geçerli HTML herhangi dokunamaz. Örneğin, başlıklar ve liste değiştirilmemelidir.

PHP ile birlikte bir çözüm hack ettik ve çalışır halde, oldukça bakmak için or hızlı değil.

What is the best way to accomplish this?
Is there a nice PHP or Javascript based parser i could use for this?

Ben, aşağı unsurları içine HTML kırmak etiketler ekleyin ve sayfaya geri monte HTML yazmaya gerek (?)

2 Cevap

Benim önerim birlikte yerine kendiniz hack HTML Tidy kullanmaktır.

$output = tidy_repair_string($input);

Seçenekler listesi için HTML Tidy Configuration Options bakın. Neye ihtiyacınız için varsayılan davranış muhtemelen gayet iyi.

Sure there is one http://simplehtmldom.sourceforge.net/

/ / Dizesinden DOM oluşturma

$html = str_get_html('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse feugiat, nunc at vestibulum egestas.

<h3>Test Heading</h3>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ultricies luctus metus ut cursus.

<ol>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
</ol>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ultricies luctus metus ut cursus.
');

$es = $html->find('text');


echo $es; // Output: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ultricies luctus metus ut cursus.

now you have to make something with that text; like this echo "<p>$es</p>"; now your text is in a <p> tag