程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 關於PHP結束標簽的使用細節探討及聯想

關於PHP結束標簽的使用細節探討及聯想

編輯:關於PHP編程

當PHP解析一個文件時,會尋找開始<?php和結束標記?>,標記告訴PHP開始和停止解釋其中的代碼。此種方式的解析可以使PHP嵌入到各種不同的文檔中,凡是在一對開始和結束標記之外的內容都會被PHP解析器忽略。大多數情況下PHP都是嵌入在HTML文檔中的。

單行注釋僅僅注釋到行末或者當前的 PHP 代碼塊,視乎哪個首先出現。這意味著在 // ... ?> 或者 # ... ?>之後的 HTML 代碼將被顯示出來:?> 跳出了 PHP 模式並返回了 HTML 模式,// 或 #並不能影響到這一點。

由以上討論可可知,即使?>出現在//注釋中,PHP解析器也會認為PHP解析結束(當 PHP 碰到結束標記 ?> 時,就簡單地將其後的內容原樣輸出( 除非其後緊接著一個新行,參見指令分隔符)直到碰到下一個開始標記為止)。
復制代碼 代碼如下:
<?php
//$a = '<a href="test.html" title="#">test</a><a href="test.html" title="#">test</a>';
//preg_match_all('|<a[^>]+href="([^\"]*)".*?>|', $a, $b);
//print_r($b);

輸出為:
復制代碼 代碼如下:
:!php preg.php
|', $a, $b);
//print_r($b);

如何修正上述問題呢?或者你使用/* */進行注釋,或者將?>用字符串連接符進行連接,如下:
復制代碼 代碼如下:
<?php
$a = '<a href="test.html" title="#">test</a><a href="test.html" title="#">test</a>';
preg_match_all('|<a[^>]+href="([^\"]*)".*?'.'>|', $a, $b);
print_r($b);

這一細節同樣適用於JS結束標簽</script>

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