PHP定界符php和html代碼混編方法實(shí)例詳解
正文
PHP定界符的運(yùn)用,極大地方便了PHP和html混編的結(jié)構(gòu),因?yàn)樵诙ń绶锌梢园ㄗ兞亢瘮?shù)和html代碼,而且可以正常解析。不用對字符串進(jìn)行轉(zhuǎn)義,可以是多行字符串。
PHP定界符是一種用于在字符串中定義大段代碼的語法結(jié)構(gòu),它有三種形式:
一、 HEREDOC(<<<)定界符
HEREDOC被稱為“長字符串常量”,用于包含多行字符串。格式如下:
$string = <<<EOT 這是一段多行字符串 可以包含變量以及任何其他語法 EOT;
在這個(gè)例子中,HEREDOC開始于"<<<EOT",結(jié)束于"EOT;",三個(gè)EOT之間的所有內(nèi)容都是字符串,可以包含變量以及其他語法。
在PHP中,HEREDOC(Here Document)是一種用于創(chuàng)建多行字符串的語法結(jié)構(gòu)。它允許您通過指定一個(gè)標(biāo)識(shí)符來引用字符串。<<<是HEREDOC的定界符,用于指示開始和結(jié)束標(biāo)識(shí)符之間的字符串是HEREDOC類型的。
下面為大家寫幾個(gè)示例代碼:
1. 使用字符串字面量替換`<<<`:
$name = <<<EOT Hello, world! This is a sample string. EOT;
在這個(gè)示例代碼中,使用雙引號包圍的字符串字面量替換<<<,并在末尾添加了換行符EOT;作為結(jié)束標(biāo)識(shí)符。
2. 使用自定義標(biāo)識(shí)符:
$greeting = <<<Greetings Hello, $name! Greetings;
上述代碼中,使用自定義的標(biāo)識(shí)符Greetings來引用字符串。標(biāo)識(shí)符可以是任何有效的PHP標(biāo)識(shí)符,但通常建議使用有意義的名稱。
3. 嵌套使用HEREDOC:
$message = <<<EOT Hello, $name! This is a sample message. Here's a list of fruits: $fruits EOT;
上述代碼中,在字符串中使用另一個(gè)HEREDOC來創(chuàng)建嵌套的字符串。這允許您在字符串中嵌入多行文本。
二、 NOWDOC(<<<'標(biāo)識(shí)符')
NOWDOC與HEREDOC非常相似,但不會(huì)解析變量和特殊字符。NOWDOC是PHP中的另一種字符串語法結(jié)構(gòu),類似于HEREDOC,但不會(huì)解析其中的變量。NOWDOC使用單引號來定界字符串,并在`<<<`后的標(biāo)識(shí)符前加上單引號。格式如下:
$string = <<<'EOT' 這是一段多行字符串 不會(huì)解析包含在字符串中的任何變量或特殊字符 EOT;
注意到這里的標(biāo)識(shí)符是用單引號包裹的,它與下面的純文本是完全相同的。與HEREDOC不同,NOWDOC不會(huì)替換其中的變量或轉(zhuǎn)義任何特殊字符。
1. 基本示例:
$message = <<<'EOT' Hello, world! This is a sample string. EOT;
該示例代碼,使用NOWDOC的語法結(jié)構(gòu)來創(chuàng)建一個(gè)多行字符串。由于使用了單引號定界符,其中的變量不會(huì)被解析。
2. 使用自定義標(biāo)識(shí)符:
$greeting = <<<'Greetings' Hello, $name! Greetings;
在這個(gè)示例代碼中,使用自定義的標(biāo)識(shí)符Greetings來引用字符串。與NOWDOC一樣,其中的變量不會(huì)被解析。
值得注意的是,由于NOWDOC不會(huì)解析字符串中的變量,因此您無法在其中引用或嵌入變量。如果需要在字符串中使用變量值,應(yīng)該使用HEREDOC。所以NOWDOC適用于那些不需要解析變量的情況。使用單引號定界符的NOWDOC語法可以確保字符串中的文本保持原樣,不會(huì)被解析或替換為變量值。
三、短標(biāo)簽寫法(<?= ?>)
短標(biāo)簽寫法允許PHP代碼直接嵌入HTML中,使用"<?="輸出變量的值。例如:
<?= $variable; ?>
在這個(gè)例子中,"$variable"的值將被輸出到HTML頁面中。請注意,您必須啟用短標(biāo)簽才能使用它,通過在php.ini文件中將short_open_tag選項(xiàng)設(shè)置為"on",或者在代碼中使用"<?php"標(biāo)記。
四、使用<?php"標(biāo)記
在html代碼中嵌入php代碼,這種方法比較好用,但是代碼看起來會(huì)比較亂!
<?php $nus=rand(1,10);//賦值變量為0到10的隨意數(shù)字 ?> <html> <head> <title>html中嵌入php代碼</title> </head> <body> 隨機(jī)數(shù)值是:<?php echo $nus;?> </body> </html>
注意,php代碼不會(huì)在html文件中被解釋,但是html代碼可以在php文件中使用!
五、把html代碼賦值給php變量
在php代碼中,把html代碼賦值給php變量也可以實(shí)現(xiàn)混編。
示例1:
<?php $html = '<html>' ; $html .= '<head>' ; $html .= '<title>你好html</title>' ; $html .= '</head>' ; $html .= '<body>' ; $html .= '<center>這就是輸出php變量$html的效果!</center>' ;//這里的$html在單引號內(nèi),不會(huì)被解釋,會(huì)被視為字符串直接輸出! $html .= '</body>' ; $html .= '</html>' ; echo $html; ?>
示例2:
<?php $html = '//注意這里下一行起 <html> <head> <title>你好html</title> </head> <body> <center>這就是輸出php變量$html的效果!</center> </body> </html> ';//html代碼到這里結(jié)束,這樣的效果和使用HEREDOC(<<<)定界符的效果是一樣的! echo $html;這里的輸出內(nèi)容與示例1是一樣的! ?>
六、總結(jié)
在使用PHP開發(fā)項(xiàng)目的時(shí)候,使用php與html代碼混編是一件非常常見的事情,體現(xiàn)出php語言的靈活性。你可能會(huì)好奇,為什么我們在使用dz、zblog、織夢建站的時(shí)候,php文件里沒有看到html代碼。那是因?yàn)樗麄儾捎昧四0宸蛛x的方法,把php文件和html分開出來編寫代碼,然后再通過php把html文件轉(zhuǎn)換成php與html代碼混編的邏輯代碼,最終都是以html的形式呈現(xiàn)網(wǎng)站內(nèi)容!如果你也希望php代碼和html分開編寫使用,你可以去找一款合適自己的模板引擎來幫助你達(dá)到該目的!
以上就是PHP定界符php和html代碼混編方法實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于php定界符混編html的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PHP中的strtr函數(shù)使用介紹(str_replace)
PHP的 strtr 函數(shù), 性能要比 str_replace 函數(shù)高, 可以代替 str_replace 來使用2011-10-10php實(shí)現(xiàn)的CSS更新類實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的CSS更新類及其用法實(shí)例,包括了針對模板文件的檢查、更新與替換模板文件等功能,非常實(shí)用,需要的朋友可以參考下2014-09-09PHP中Socket連接及讀寫數(shù)據(jù)超時(shí)問題分析
這篇文章主要介紹了PHP中Socket連接及讀寫數(shù)據(jù)超時(shí)問題,分析了Socket連接的相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下2016-07-07PHP中的traits實(shí)現(xiàn)代碼復(fù)用使用實(shí)例
這篇文章主要介紹了PHP中的traits實(shí)現(xiàn)代碼復(fù)用使用實(shí)例,本文講解了Trait簡單使用、優(yōu)先級問題、多個(gè)Trait沖突問題、as可用來修改方法訪問控制、Trait中使用Trait等內(nèi)容,需要的朋友可以參考下2015-05-05使用PHPStorm+XDebug搭建單步調(diào)試環(huán)境
由于 PhpStorm 不像 Zend 公司為 Zend Studio 那樣配套集成了很多開發(fā)部件,包括解釋器、調(diào)試器、虛擬機(jī)、服務(wù)器、開發(fā)框架等等。因此,配置 PhpStorm 開發(fā)環(huán)境相對較繁瑣,有很多需要注意的地方。2017-11-11