HTML into PHP Variable (HTML outside PHP code)

后端 未结 7 2354
一整个雨季
一整个雨季 2020-12-04 16:08

I am new to php and wondering if I can have something like this:




   ...
            


        
相关标签:
7条回答
  • 2020-12-04 16:22

    I'm not really sure about what you are trying to accomplish, but I think something like the heredoc syntax might be useful for you:

    <?
    $variable = <<< MYSTRING
    
    <html>
       <head>...</head>
       <body>...</body>
    </html>
    
    MYSTRING;
    

    However if you are trying to make HTML templates I would highly recommend you to get a real templating engine, like Smarty, Dwoo or Savant.

    0 讨论(0)
  • 2020-12-04 16:22

    I always recommend to AVOID buffer functions (like ob_start ,or etc) whenever you have an alternative (because sometimes they might conflict with parts in same system).

    I use:

    function Show_My_Html()
    { ?> 
        <html>
          <head></head>
          <body>
             ...
          </body>
        </html>
        <?php 
    }
    
    
    ...
    //then you can output anywhere
    Show_My_Html();
    
    0 讨论(0)
  • 2020-12-04 16:28

    Have you tried "output buffering"?

    <?php
     ...
     ob_start();
    ?>
    
    <html>
       <head>...</head>
       <body>...<?php echo $another_variable ?></body>
    </html>
    
    <?php
     $variable = ob_get_clean();
     ...
    ?>
    
    0 讨论(0)
  • 2020-12-04 16:36

    Ok what you want to do is possible in a fashion.

    You cannot simply assign a block of HTML to a php variable or do so with a function. However there is a number of ways to get the result you wish.

    1. Investigate the use of a templating engine (I suggest you do this as it is worth while anyway). I use smarty, but there are many others
    2. The second is to use an output buffer.

    One of the problems you have is that any HTML you have in your page is immediately sent to the client which means it cant be used as a variable in php. However if you use the functions ob_start and ob_end_fush you can achive what you want.

    eg

    <?php 
      somesetupcode();
      ob_start();  ?>
    <html>
    <body>
    html text
    </body>
    </html>
    <?php
      //This will assign everything that has been output since call to ob_start to your    variable.
      $myHTML = ob_get_contents() ;
      ob_end_flush();
    
    ?>
    

    Hope this helps you can read up on output buffers in php docs.

    0 讨论(0)
  • 2020-12-04 16:36
    $html_content = '
        <p class="yourcssclass">Your HTML Code inside apostraphes</p>
    ';
    echo $html_content;
    
    0 讨论(0)
  • 2020-12-04 16:37

    Its REALLY CRAZY but be aware that if you do it :

    <?php echo ""; ?>  
    

    You will get it:

    <html><head></head><body></body></html>  
    

    Keep calm, its only php trying turn you crazy.

    0 讨论(0)
提交回复
热议问题