Bagaimana saya bisa echo HTML dalam PHP?

Saya ingin kondisional HTML output untuk menghasilkan halaman, jadi apa's cara termudah untuk echo multiline potongan HTML dalam PHP 4+? Apakah saya perlu menggunakan kerangka template seperti Smarty?

echo '<html>', "\n"; // I'm sure there's a better way!
echo '<head>', "\n";
echo '</head>', "\n";
echo '<body>', "\n";
echo '</body>', "\n";
echo '</html>', "\n";
Mengomentari pertanyaan (3)
Larutan

Ada beberapa cara untuk echo HTML dalam PHP.

1. Di antara tag PHP

<?php if(condition){ ?>

<?php } ?>

2. Di echo

if(condition){
     echo "HTML here";
}

Dengan echos, jika anda ingin menggunakan tanda kutip ganda di HTML anda, anda harus menggunakan kutip tunggal echos seperti:

echo '<input type="text">';

Atau anda dapat melarikan diri dari mereka seperti:

echo "<input type=\"text\">";

3. Heredocs

4. Nowdocs (seperti PHP 5.3.0)

Template engine digunakan untuk menggunakan PHP dalam dokumen yang sebagian besar berisi HTML. Bahkan, PHP's tujuan awal adalah untuk menjadi templating language. Yang's mengapa dengan PHP anda dapat menggunakan hal-hal seperti pendek kategori ke echo variabel (misalnya <?=$someVariable?>).

Ada yang lain template engine (seperti Smarty, Ranting, dll.) yang membuat sintaks yang lebih singkat (misalnya {{someVariable}}).

Manfaat utama dari menggunakan template engine adalah menjaga desain (Presentasi Logika) terpisah dari coding (Business Logic). Hal ini juga membuat kode lebih bersih dan lebih mudah untuk mempertahankan dalam jangka panjang.

Jika anda memiliki pertanyaan lebih lanjut jangan ragu untuk meninggalkan komentar. Bacaan lebih lanjut tersedia pada hal-hal ini dalam PHP Dokumentasi.

Tuhan Memberkati!


CATATAN: PHP pendek kategori <? dan ?> berkecil hati karena mereka hanya tersedia jika diaktifkan dengan short_open_tag php.ini file konfigurasi direktif, atau jika PHP dikonfigurasi dengan --enable-short-tags pilihan. Mereka tersedia, terlepas dari pengaturan dari 5,4 seterusnya.

Komentar (10)

coba seperti ini:


$variable = 
Komentar (6)

Anda bisa menggunakan alternatif sintaks sintaks alternatif untuk struktur kontrol dan keluar dari php:

<?php if ($something): ?>

    <?=$shortButControversialWayOfPrintingAVariable ?>
    <?php /* A comment not visible in the HTML but is a bit of a pain to write */ ?>
<?php else: ?>

<?php endif; ?>
Komentar (2)

Pada dasarnya anda dapat menempatkan HTML di mana saja di luar dari tag PHP. It's juga sangat bermanfaat untuk melakukan semua yang diperlukan pengolahan data sebelum menampilkan data apapun, dalam rangka untuk memisahkan logika dan presentasi.

Data display itu sendiri bisa di bawah sama file PHP atau anda bisa menyertakan memisahkan file PHP yang terdiri dari sebagian besar HTML.

Saya lebih suka gaya kompak ini:

<?php
    /* do your processing here */
?>



    <?=$title?>


    <?php foreach ( $something as $item ) : ?>
        <p><?=$item?></p>
    <?php endforeach; ?>

Catatan: anda mungkin perlu untuk menggunakan <?php echo $var; ?> bukan <?=$var?> tergantung pada PHP anda setup.

Komentar (0)

Aku parsial untuk gaya ini:



      Definitely X
      Totally not X

Saya menggunakan ASP-tag gaya, ya. Pencampuran PHP dan HTML terlihat super-mudah dibaca untuk mata saya. Trik dalam mendapatkan <% and %> spidol tepat.

Komentar (2)

Pendekatan lain adalah menempatkan kode HTML dalam file terpisah dan menandai area yang berubah dengan pengganti [[konten]] dalam kasus ini. (Anda juga dapat menggunakan sprintf bukan str_replace.)

$page = 'hello world';
$content = file_get_contents('html/welcome.html');
$pagecontent = str_replace('[[content]]',$content,$page);
echo($pagecontent);

Atau anda hanya bisa output semua barang php untuk layar ditangkap dalam buffer, kemudian menulis html, kemudian masukan php output kembali ke halaman.

Ini mungkin tampak aneh untuk menulis php out, menangkapnya, kemudian menulis lagi, tapi itu tidak berarti bahwa anda dapat melakukan semua jenis format barang (Heredocs dll),& menguji output dengan benar tanpa kerumitan dari halaman template mendapatkan di jalan. (Joomla CMS melakukannya dengan cara ini, BTW) yaitu:

<?php
ob_start();
echo('hello world');
$php_output = ob_get_contents();
ob_end_clean();
?>
<h1> My Template page says </h1>
<?php
echo($php_output );
?>
<hr>
template footer
Komentar (0)

$enter_string = '<textarea style="color:#FF0000;" name="message">EXAMPLE
Komentar (0)

Coba Ini Dapat Membantu Anda.......


<?php
echo 
Komentar (0)

Selain untuk Chris B's menjawab, jika anda perlu untuk menggunakan echo pula, masih ingin tetap sederhana dan terstruktur dan don't ingin spam kode dengan <?php barang; ?>'s, anda dapat menggunakan sintaks di bawah ini.

Misalnya anda ingin menampilkan gambar dari gallery:

foreach($images as $image)
{
    echo
    '<li>',
        '<a href="', site_url(), 'images/', $image['name'], '">',
            '![', $image['description'], '](', site_url(), 'images/thumbs/', $image['filename'], ')',
        '</a>',
    '</li>';
}

Echo mengambil beberapa parameter sehingga dengan indentasi itu terlihat cukup baik. Juga menggunakan echo dengan parameter lebih efektif daripada concatenating.

Komentar (0)

don't echo keluar HTML

jika anda ingin menggunakan

<?php echo "<h1>  $title; </h1>"; ?>

anda harus melakukan ini:

<h1><?= $title;?></h1>
Komentar (0)

Cukup gunakan print fungsi echo teks dalam file PHP sebagai berikut

<?php

  print('

    <div class="wrap">

      <span class="textClass">TESTING</span>

    </div>

  ')

?>
Komentar (0)
echo '




';

atau

echo "\n\n\n\n";
Komentar (0)

Ini adalah bagaimana saya melakukannya:

<?php if($contition == true){ ?>
         <input type="text" value="<?php echo $value_stored_in_php_variable; ?>" />
<?php }else{ ?>
         <p>No input here </p>
<?php } ?>
Komentar (0)