(PHP 4, PHP 5, PHP 7, PHP 8)
strip_tags — Bir dizgeden HTML ve PHP etiketlerini ayıklar
Bu işlev belirtilen dizge
dizgesinden tüm NULL baytları, HTML ve PHP etiketleri ayıklanmış olarak bir dizge döndürmeye çalışır. fgetss() işlevinin kullandığı etiket ayıklama motoru kullanılır.
dizge
Girdi dizgesi.
ayıklanmayacaklar
Seçimlik olan bu bağımsız değişkende ayıklanmayacak etiketleri belirtebilirsiniz. Ya dizge olarak ya da PHP 7.4.0'dan itibaren bir dizi olarak belirtilebilir. Bu bağımsız değişkenin biçemi ile ilgili olan aşağıdaki örneğe bakılabilir.
Bilginize:
HTML içi açıklamalar ile PHP etiketleri de ayıklanır ve bu durum
ayıklanmayacaklar
ile değiştirilemez.
Bilginize:
Kendi kapanan XHTML etiketleri yoksayılır ve
ayıklanmayacaklar
içinde sadece kendi kapanmayan etiketler bulunmalıdır. Örneğin,<br>
ve<br/>
etiketlerinin ikisine de izin vermek için şöyle yapılmalıdır:<?php
strip_tags($input, '<br>');
?>
Ayıklanmış dizge döner.
Sürüm: | Açıklama |
---|---|
8.0.0 | ayıklanmayacaklar artık null olabiliyor. |
7.4.0 | ayıklanmayacaklar artık dizi de kabul ediyor. |
Örnek 1 - strip_tags() örneği
<?php
$metin = '<p>Deneme paragrafı.</p><!-- Açıklama --> ' .
'<a href="#capa">Başka bir metin</a>';
echo strip_tags($metin);
echo "\n";
// <p> ve <a>'ya izin verelim
echo strip_tags($metin, '<p><a>');
// PHP 7.4.0 ve sonrasında yukarıdaki satır şöyle yazılabilir:
// echo strip_tags($metin, ['p', 'a']);
?>
Yukarıdaki örneğin çıktısı:
Deneme paragrafı. Başka bir metin <p>Deneme paragrafı.</p> <a href="#capa">Başka bir metin</a>
Bu işlev XSS saldırılarını engellemeye çalışmak için kullanılmamalıdır. htmlspecialchars() gibi daha uygun işlevler veya çıktı bağlamına bağlı olarak diğer araçlar kullanılmalıdır.
strip_tags() işlevi HTML doğrulaması yapmadığından kısmen veya tamamen bozuk etiketler nedeniyle beklenenden daha az metin veya veri elde edilebilir.
Bu işlev ayıklanmayacaklar
bağımsız değişkeninde belirtilen etiketlerdeki özniteliklerde, haylaz bir kullanıcıyı baştan çıkarabilecek bilgiler içerebilen style
ve onmouseover
öznitelikleri dahil, bir değişiklik yapmaz.
Bilginize:
HTML girdi içindeki 1023 bayttan daha uzun etiket adları,
ayıklanmayacaklar
bağımsız değişkenine bakılmaksızın geçersiz olarak değerlendirilir.