PHP kısa başlangıç ​​ve bitiş etiketleri görmezden HTML Tidy yapılandırma ne zaman html nitelikleri içinde

4 Cevap php

Html öznitelikleri değerleri olarak kullanıldığında nasıl PHP kısa etiketleri dönüştürme HTML Tidy tutabilirsiniz?

İşte şu anda ne bir örnek. Bu dönüştürür:

<input value='<?=$variable?>'>

Bunun için:

<input value='&lt;?=$variable?&gt;'>

Ben HTML Tidy PHP kısa etiketleri göz ardı etmek istiyorum. Bunu değiştirmek herhangi bir yapılandırma seçenekleri?

==

Basitleştirmek için, HTML Tidy sadece HTML varlık dönüşüm yaparak önlemek için bir yol var mı? Sadece dönüştürmek olmasaydı < ve>, bu benim sorunu çözmek olacaktır.

4 Cevap

Bu yapılabilir bile Tidy php ile çok iyi çalışmıyor - bu boğması olabilir eğer php kod alıntı işaretleri içerir vb Ayrıca {[( onlar php tarafından çıkış iseniz 0)]} özelliklerini eksik hakkında uyarılar atmak olabilir.

You could replace all <?$variable?> to <#$variable#> before running Tidy and then replace them back. In the console, for example like this:

sed -i 's/<?=\(.*\)?>/<#\1#>/g' yourfile.php
tidy -m yourfile.php
sed -i 's/<#\(.*\)#>/<?=\1?>/g' yourfile.php

The first line converts <?=$variable?> to <#$variable#> inside file, the second runs tidy in place and updates the file, The third line converts <#$variable#> back to <?=$variable>.

İşlenmemiş PHP (birkaç en önemsiz durumlar hariç) HTML ile uyumlu değildir, ve Tidy bunun için sadece yüzeysel desteği vardır.

Orada sayısız yolu olduğu Tidy belgede aslında cause hataları, PHP oluşturur ne ve diğer biçimlendirme ile nasıl etkileşim anlamıyorum çünkü yapamam.

Doğru ve güvenilir sonuçlar elde etmek için HTML-yalnızca çıkış postprocess gerekir. Siz PHP Tidy filtre ekleyerek yapabilirsiniz:

<?php
ob_start('ob_tidyhandler');
?>

Bu zamanı performansını etkileyecektir, ama Tidy oldukça hızlı olduğu gibi çoğu site için bir sorun değil.

Eğer php ön-işleme olabilir:

<? <!--<? dönüştürme, ve ?> ?>--> yazan yorum ekleyerek

<input value='<?=$variable?>'>

olacak

<input value='<!--<?=$variable?>-->'>

HTMLtidy çalıştırdıktan sonra, sen tersini yapardı.

  1. Yorum etiketleri ekleyerek pre-process
  2. HTMLtidy çalıştırın
  3. un-ön-işlem ...

Hızlı bir şekilde sadece <?php echo tüm <?= değiştirmektir