程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> [轉]php和html混編的三種方式,混編三種方式

[轉]php和html混編的三種方式,混編三種方式

編輯:關於PHP編程

[轉]php和html混編的三種方式,混編三種方式


php和html混編的三種方式

  在W3school 上學PHP,看到第一句就是“PHP 文件可包含文本、HTML 標簽以及腳本” 

在後來的學習別人的代碼,發現在需要HTML代碼的PHP腳本中,多用這麼幾種方法 

第一種是在HTML中加PHP。大段大段的html代碼中,在各個需要執行php的地方<?php .... ?>。這種方法在ASP的程序中比較常見。 
例子: 
<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta http-equiv="Content-Language" content="zh-CN" /> 
<title>Hello World</title>
    <style>
        body{font-size:15px;color:#000;font-family:Arial,Helvetica,sans-serif;}
        a{color:#039;text-decoration:none;}
    </style> 
</head>
<body>
        </b> 
        <?php 
            echo "Hello world!這是正文"; 
        ?> 
        <br>
        <a href=# >這是一個超鏈接</a>
        </b>
    </body>
</html>

 


第二種用echo輸出HTML。但是HTML中有雙引號,所用echo輸出的內容用單引號括起來,避免出錯,也省了轉義這一步。 比如這樣的代碼: 
<?php 
if(!$_POST) 
    { 
    echo '<form action="" method="post"> 
            服務器地址:<input type="text" name="host" value="localhost" /><br /> 
            數據庫賬號:<input type="text" name="user" value="" /><br /> 
            數據庫密碼:<input type="password" name="pwd" value="" /><br /> 
            指定數據庫:<input type="text" name="db" value="test" /><br /> 
            <input type="submit" value="確定"/> 
           </form><hr/>說明:<b>……<br /></b>
         '; 
    } 
?>
不過比較多見的還是加了轉義符號的,個人覺得閱讀起來不爽 
echo "<input type=\"submit\" value=\"確定\"/>"

 


第三種就是用(<<<)標記符了,這是在PHP168的模板代碼中首次見到的。 
<<<EOT 
EOT;

 

中間的文檔直接輸出,一個比較好理解的說法是“一個多行的echo ”。 
優點是輸出大段HTML方便,不需要轉義,而且可以引用變量。 一個例子: 
<?php

    $label1 = "deepblue_mainslide";
    $label2 = "deepblue_mainh1";
    $label3 = "deepblue_maint1";
    $label4 = "deepblue_maint2";
    $rs = array("http://123.abc.com", "abc", "ABC");
 
    print <<<EOT
        <div class="slidecont">{$label1}</div> 
        <div class="newcontainter"> 
        <div class="head">{$label2}</div> 
        <div class="cont" id="Tab1"> 
            {$label3} 
        </div> 
        <div class="cont" id="Tab2"> 
            {$label4} 
        </div> 
        </div> 
        <a href="$rs[0]" title="$rs[1]" target="_blank">$rs[2]</a> 
EOT;
?>

 


在上面的例子干淨利索的輸出了大段HTML+變量的值,非常棒。 
但是在使用(<<<EOT) 標記符還有一點需要注意: 標識符結束字符串即EOT;要獨占一行,前後都不許再有內容。  PS.注意不但EOT;前面不能有空格,而且<<<EOT後面也不能有任何空格!!!否則不但什麼都不會輸出,而且還會報錯!!!

尤其容易犯的失誤就是在標識符前加空格和縮進符,下面的例子什麼都不會輸出 

<?php 
    print <<<EOT[1]
    <a href="http://blog.i1728.com/" title="東方天宇的博客">東方天宇的博客</a> 
[2]EOT;[3]
    echo "喂~人家在等你呢!"; 
?>

我們會發現,[如果三個地方任何一個地方加了空格],會顯示以下三種不同的錯誤提示,最後的echo也沒有執行。

    //[1]( ! ) Parse error: syntax error, unexpected '<<' (T_SL) in D:\MyHTTP\Apache24\htdocs\testPHPmixHTML04.php on line 2
    //[2]( ! ) Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in D:\……\testPHPmixHTML04.php on line 14
    //[3]( ! ) Parse error: syntax error, unexpected '{' in D:\MyHTTP\Apache24\htdocs\testPHPmixHTML04.php on line 8

這是因為(<<<EOT)沒有找到標識符結束字符,將echo語句也包含到需要輸入的內容了。 

同時,因為沒有找到標識符結束字符所有的內容都不會輸出。 
當然,這只是我的理解,因為即使將echo語句放在print <<<EOT 
前面,腳本也不會有內容內容。 
具體什麼原因,就留給大家去討論了。    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved