HTML ve PHP'yi birlikte yorumlayın


93

Bu koda sahibim

    <tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>

ve ikisini de tek seferde yorumlamak isterim ... ama denediğimde

    <!-- <tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr> -->

sayfa başarısız - görünüşe göre PHP kodu yorumlanmıyor ... Bunu yapmanın bir yolu var mı?

Yanıtlar:


183

HTML yorumlarını kullanmak yerine ( PHP kodu üzerinde hiçbir etkisi olmayan - yine de yürütülecektir) , PHP yorumlarını kullanmalısınız:

<?php /*
<tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>
*/ ?>


Bununla birlikte, HTML içindeki PHP kodu çalıştırılmayacaktır; ve hiçbir şey (HTML değil, PHP değil, yürütülmemesinin sonucu değil) görüntülenmeyecektir.


Sadece bir not: C-stili yorumları iç içe yerleştiremezsiniz ... bu, yorumun ilk */karşılaşıldığında biteceği anlamına gelir .


Bu biraz daha fazla şey ekler (PHP yorum biçimlendirmesinin yanı sıra PHP etiketlerine de ihtiyacınız vardır), ancak bunu yapmanın en iyi yolu bu, kabul ediyorum.
qJake

Ama sonra yorum yaptığında <? Php ve?> Etiketlerini de kaldırması gerekiyor ki bu biraz daha fazla iş.
Flipper

4
@flipper: yani? Fazladan birkaç karaktere kıyasla her PHP kodu bloğunu elle kopyalamak zorunda kalıyor.
Marc B

İlginç bir şekilde, NetBeans 8.0.2'nin bunu anlamadığı görülüyor (ve bu nedenle, HTML'yi yorumlamak için geçerli bir yol olmasına rağmen kodumu yanlış biçimlendiriyor).
Ryan

yüce metin düzenleyicide yapmak için kısayol nedir? Ctrl + c'yi biliyorum ama bu PHP yorumları yapmaz.
yadavr

42

Pascal'ın çözümünün gidilecek yol olduğuna katılıyorum, ancak yorumları kaldırmak için fazladan bir görev eklediğini söyleyenler için, hayatınızı basitleştirmek için aşağıdaki yorum stili hilesini kullanabilirsiniz:

<?php /* ?>
<tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>
<?php // */ ?>

Kod bloğunun yorumlanmasını durdurmak için, açılış açıklamasını şu şekilde değiştirmeniz yeterlidir:

<?php //* ?>

Bu çözüm, her biri iki boş hücreye sahip iki boş satırın HTML'de görünmeye devam etmesine neden olmaz mı?
Sparr

1
Hayır, öyle değil. Deneyin ve görün! ;)
Nev Stokes

6

Çok sayıda iç içe geçmiş HTML + PHP kodunu yorumlamanız gerekiyorsa aşağıdaki çözümü oldukça etkili buldum.

Tüm içeriği buna sarın:

<?php
    if(false){
?>

Here goes your PHP + HTML code

<?php
    }
?>

Aslında işe yarayan tek çözüm bu , neden bunun en iyi cevap olmadığını anlamıyorum :) Çok teşekkürler dostum!
bviktor

Bu soruyu sorulduğu şekilde gerçekten söyleyen 3 kişi için: BU ^ cevabınızdır;) - Not: if (false): - endif; sözdizimi, çünkü bir sonraki geliştirici için işaretlemeyi etkilemesinin amaçlandığı daha açık olabilir
MJHd

4

<!-- -->Sadece HTML yorumlama ve PHP hala zaten çalışacaktır içindir ...

Bu nedenle yapacağım en iyi şey PHP'yi de yorumlamaktır ...


2

Bunu yalnızca PHP yorumlarıyla başarabilirsiniz.

 <!-- <tr>
      <td><?php //echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php //echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php //echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php //echo $sort_order; ?>" size="1" /></td>
    </tr> -->

PHP ve HTML'nin çalışma şekli, siz şunları yapmadıkça tek seferde yorum yapamaz:

<?php

/*

echo <<<ENDHTML
 <tr>
          <td>{$entry_keyword}</td>
          <td><input type="text" name="keyword" value="{echo $keyword}" /></td>
        </tr>
        <tr>
          <td>{$entry_sort_order}</td>
          <td><input name="sort_order" value="{$sort_order}" size="1" /></td>
        </tr>
ENDHTML;

*/
?>

0

PHP ayrıştırıcı, kodunuzun tamamını <?php(veya <?short_open_tag = On ise) arayacaktır , bu nedenle HTML yorum etiketlerinin PHP ayrıştırıcı davranışı üzerinde bir etkisi yoktur ve PHP kodunuzu ayrıştırmak istemiyorsanız, PHP yorum yönergelerini ( /* */veya //) kullanmanız gerekir. .


0

Bunu bir yorum olarak da kullanabilirsiniz:

<?php
    /* get_sidebar(); */

?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.