Yerleşik DOMDocument kullanarak bir HTML belgesindeki komut dosyalarını kaldırmak için @Alex's approach here kullandım. Sorun, Javascript içeriğiyle bir komut dosyası etiketim ve harici bir Javascript kaynak dosyasına bağlanan başka bir komut dosyası etiketim varsa, tüm komut dosyası etiketlerinin HTML'den kaldırılmamasıdır.DOMDocument betik etiketlerini HTML kaynağından kaldırma
$result = '
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>
hey
</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
alert("hello");
</script>
</head>
<body>hey</body>
</html>
';
$dom = new DOMDocument();
if($dom->loadHTML($result))
{
$script_tags = $dom->getElementsByTagName('script');
$length = $script_tags->length;
for ($i = 0; $i < $length; $i++) {
if(is_object($script_tags->item($i)->parentNode)) {
$script_tags->item($i)->parentNode->removeChild($script_tags->item($i));
}
}
echo $dom->saveHTML();
}
Yukarıdaki kod çıkışları: Eğer çıkış görebileceğiniz gibi
<html>
<head>
<meta charset="utf-8">
<title>hey</title>
<script>
alert("hello");
</script>
</head>
<body>
hey
</body>
</html>
, sadece dış komut dosyası etiketi çıkarıldı. Tüm komut dosyası etiketlerinin kaldırıldığından emin olmak için yapabileceğim bir şey var mı?
Bu işe yaradı, teşekkürler! – RandomCoder
Başka bir çözüm, sadece ters sırayla elemanların üstesinden gelmektir. – CBroe