首頁  >  文章  >  後端開發  >  PHP strip_tags()

PHP strip_tags()

王林
王林原創
2024-08-29 12:52:401123瀏覽

PHP 中的 strip_tags() 函數是內建函數,可以從 HTML 和 PHP 標籤中刪除/刪除字串。這將傳回一個具有 NULL 位元組值和 HTML 值的字串,PHP 標籤將從給定的輸入字串中刪除/剝離。當我們在網站上顯示使用者的輸入時,此功能基本上很有用。例如,當我們在網站上建立訊息論壇時,使用者可以發布以下標題:

此網站很糟糕!

。如果網站要顯示每個貼文的所有標題,那麼此不需要的訊息也會以標題格式顯示在網站上,向頁面的所有訪客顯示。因此,透過使用 strip_tag() 函數將有助於消除此類問題。 廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

string strip_tags( $str, $allowed_tags )

所需參數: 函數接受 2 個參數;

  • $str 為必填參數,是需要檢查的主字串。
  • $allowed_tags 是非強制參數,描述允許且不被剝離的標籤。因此這些標籤將會被保留。

回傳值:這個 strip_tags 函數為我們提供從輸入字串中剝離出來的結果字串。

例外:

  • 此函數不提供 HTML 驗證。
  • 預設會刪除的一些內容是 HTML 註解和 PHP 標籤,這些內容無法更改,因為它們是硬編碼的。
  • 自閉合 XHTML 標籤在 PHP 5.3.4 之後的版本中被忽略,因此僅允許在 $allowed_tags 中使用非自閉合標籤。

PHP strip_tags() 函數範例

現在讓我們透過一些範例來了解 PHP strip_tags 函數的工作原理。

範例#1

代碼:

<?php<br /> // PHP programme to demostrate<br /> // strip_tags function without $allowed_tags parameter<br /> echo strip_tags("Hello <b>Sample Program!</b>");<br> ?>

輸出:

PHP strip_tags()

在上面的範例中,我們顯示了一個簡單的 PHP 程式碼來說明可以使用 strip_tags 函數而無需指定第二個參數來指定允許的所有字元。這意味著字串中的所有字元都被允許並按原樣列印。

範例#2

代碼:

<?php<br /> $str = '<p>To test a paragraph.</p><!-- Starting comments --> <a href="#fragment">Another paragraph goes here</a>';<br> echo strip_tags($str);<br> echo "n";<br> // Here we allow HTML tag <p><br> echo strip_tags($str, '<p>');<br> // In the version till PHP 7.4.0 the above code can be written as:<br> // echo strip_tags($str, ['p', 'a']);<br> ?>

輸出:

PHP strip_tags()

在上面的範例中,我們首先指定所需的 HTML 程式碼並將其指派給輸入字串 $str。然後,我們僅使用單一參數對該字串使用剝離標籤功能。接下來我們展示第二個參數 $allow_tags 的使用,其中我們僅指定標籤

意味著只有

應允許有標籤,其餘所有標籤應剪掉。因此,在輸出中我們可以看到只有

顯示標籤資訊並顯示。不顯示標籤資訊。我們也可以看到,在輸出中,HTML 註解沒有被列印,因此證明即使我們沒有在第二個參數清單中指定,該函數預設也會修剪 HTML 註解。

警告

  • 此功能不能用於防止某些攻擊,例如XSS。還有其他適當的方法或函數,如 htmlspecialchars() ,可用於此目的,具體取決於所需的輸出類型。
  • 函數 strip_tags() 只是修剪掉 HTML 標籤,而沒有真正驗證它們。因此,這可能會導致標籤損壞或刪除比預期更多/更少的資料。因此,在指定函數的第二個參數時應該小心。
  • 此函數也不支援對我們在 $allowed_tags 函數中指定的參數進行任何修改,還包括某些使用者可能用來發布文字以顯示給其他使用者的 onmouseover 和 style 屬性。
  • 使用此函數時還需要注意的一點是,無論我們在 $allowed_tags 中提供什麼作為參數,HTML 中字元大於指定長度(1023 位元組)的標籤名稱都會被視為無效.

範例 #3

代碼:

<?php<br /> $str = '<a title="" href="/index.html"><b>Some Text</b></a><br> Just a sample text to showcase a paragraph coming in HTML body';<br> echo strip_tags_content($str);<br> function strip_tags_content($str) {<br> return preg_replace('@<(w+)b.*?>.*?</1>@si', '', $str);<br> }<br> ?>

輸出:

PHP strip_tags()

在上面的範例中,我們使用 strip_tags 函數來刪除錨標記及其輸入字串中的內容。 PHP strip_tags 在剝離時會自動刪除開始和結束 HTML 標籤。

範例#4

代碼:

<?php<br /> $str = '<?= '<?= 1 ?>' ?>2';<br> var_dump(strip_tags($str));<br> ?>

輸出:

PHP strip_tags()

此範例示範如何從巢狀 PHP 標籤中刪除內容。

範例#5

代碼:

<?php // Test.php<br /> $str = '<br>Trial<br/>on<br />NewLine';<br> $d = strip_tags($str, '<br />');<br> var_dump($d); // Displays string(11) "TraialonNewLine" on output<br> ?>

輸出:

PHP strip_tags()

在此範例中,我們可以看到我們只允許
內的內容字串,這裡的輸出會隨著我們在不同版本的 PHP 中運行而改變。

範例 #6

代碼:

<?php<br> function strip_tags_d($a)<br> {<br> return is_array($a) ?<br> array_map('strip_tags_d', $a) :<br> strip_tags($a);<br> }<br> // Example<br> $arr1 = array('<b>Car</b>', '<i>Bat</i>', array('<b>Car</b>', '<i>Bat</i>'));<br> $arr1 = strip_tags_d($arr1);<br> // Output<br> print_r($arr1);<br> ?>

輸出:

PHP strip_tags()

在上面的範例中,我們展示了 strip_tags 函數的遞歸函數的使用。因此,在輸出中我們可以看到數組以 2 的循環列印。

結論

如上所示,我們看到如何使用 strip_tags() 函數從程式碼中刪除一些不需要的 HTML 和 PHP 標籤。該函數可以解析輸入字串並提取其結構。它通常會修剪或替換給定的 HTML 或 PHP 標籤,我們將這些標籤作為要從 HTML 文件中刪除的輸入參數清單傳遞。當我們只需要修剪 PHP 標籤而不是 HTML 時,也可以使用此方法,反之亦然。

推薦文章

這是 PHP strip_tags() 的指南。在這裡,我們討論 PHP strip_tags() 函數簡介及其範例以及程式碼實作。您也可以瀏覽我們其他推薦的文章來了解更多-

  1. PHP 框架
  2. PHP Chop()
  3. PHP setlocale()
  4. PHP strtotime

以上是PHP strip_tags()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn