hoe kan ik dit eruit filteren?
Hallo. Ik heb onderstaande html code welke zich bevind in bestand1.html
wat ik nu graag wil is de inhoud van dit bestand filteren en alle elementen verwijderen die de class "verwijderen" bevatten. Ik heb daarvoor al een php code die 1 en ander eruit filter. alleen deze werkt niet bij de elementen die naast de class "verwijderen" ook andere classes bevatten.
Onderstaande het stuk code dat gefilterd moet worden
Onderstaande het stuk php code om het eruit te filteren. de onlick en de contenteditables worden verwijderd. daarnaast ook alle elementen die alleen de class "verwijderen". bevatten:
Toevoeging op 20/06/2025 15:41:37:
de php oplossing heb ik van chatgpt. kwam er namelijk niet aan uit. Maar deze werkt dus niet helemaal zoals het moet
wat ik nu graag wil is de inhoud van dit bestand filteren en alle elementen verwijderen die de class "verwijderen" bevatten. Ik heb daarvoor al een php code die 1 en ander eruit filter. alleen deze werkt niet bij de elementen die naast de class "verwijderen" ook andere classes bevatten.
Onderstaande het stuk code dat gefilterd moet worden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<header id="headerbackcolor-9827" onclick="get_backgroundcolor_info(this.id)" class="backgroundpaul-webcolor2 headermenupaul_fixed">
<a id="hreflogo-9827" onclick="get_element_info(this.id)" href="https://toffewebsite.nl" target="_blank" class="logo_fixed res-logo_fixed">
<img onclick="changeimage(this.id);setimagelogo();stopprog()" id="logoimage-9827" style="max-width: 200px" src="images/logo/logo.png" title="Goochelshow" alt="Hier alt text"></a>
<input class="menu-btn_fixed" type="checkbox" id="menu-btn_fixed">
<label class="menu-icon_fixed" for="menu-btn_fixed"><span class="navicon_fixed"></span></label>
<ul id="headermenuitems-9827" class="menu_fixed">
<li id="remove-button1-9827">
<a contenteditable="plaintext-only" data-id="button1-9827" id="button1-9827" onclick="headermenu(this.id);" href="#"><i class="fa fa-fw fa-lg fa-home"></i>Home</a>
<div class="verwijderen centreren-tekst">
<button data-id="button1-9827" onclick="remove_menuitem(this)" type="button">deze wordt niet verwijderd</button>
</div>
</li>
</ul>
<div class="verwijderen">
<h1>deze wordt wel verwijderd</h1>
</div>
</header>
<a id="hreflogo-9827" onclick="get_element_info(this.id)" href="https://toffewebsite.nl" target="_blank" class="logo_fixed res-logo_fixed">
<img onclick="changeimage(this.id);setimagelogo();stopprog()" id="logoimage-9827" style="max-width: 200px" src="images/logo/logo.png" title="Goochelshow" alt="Hier alt text"></a>
<input class="menu-btn_fixed" type="checkbox" id="menu-btn_fixed">
<label class="menu-icon_fixed" for="menu-btn_fixed"><span class="navicon_fixed"></span></label>
<ul id="headermenuitems-9827" class="menu_fixed">
<li id="remove-button1-9827">
<a contenteditable="plaintext-only" data-id="button1-9827" id="button1-9827" onclick="headermenu(this.id);" href="#"><i class="fa fa-fw fa-lg fa-home"></i>Home</a>
<div class="verwijderen centreren-tekst">
<button data-id="button1-9827" onclick="remove_menuitem(this)" type="button">deze wordt niet verwijderd</button>
</div>
</li>
</ul>
<div class="verwijderen">
<h1>deze wordt wel verwijderd</h1>
</div>
</header>
Onderstaande het stuk php code om het eruit te filteren. de onlick en de contenteditables worden verwijderd. daarnaast ook alle elementen die alleen de class "verwijderen". bevatten:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$inputFile = 'bestand1.html';
$html = file_get_contents($inputFile);
$outputFile ="index.html;"
?>
<?php
libxml_use_internal_errors(true); // Negeer warnings over HTML-structuur
$dom = new DOMDocument();
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); // voorkom automatische <html>/<body> tags
$xpath = new DOMXPath($dom);
// Vind ALLE elementen met class "verwijderen" (ook als ze andere classes hebben)
$nodes = $xpath->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' verwijderen ')]");
// Verzamel te verwijderen nodes eerst in array (anders raakt de NodeList corrupt)
$toRemove = [];
foreach ($nodes as $node) {
$toRemove[] = $node;
}
// Verwijder ze nu veilig
foreach ($toRemove as $node) {
$node->parentNode->removeChild($node);
}
// Sla resultaat op
file_put_contents($outputFile, $dom->saveHTML());
?>
$inputFile = 'bestand1.html';
$html = file_get_contents($inputFile);
$outputFile ="index.html;"
?>
<?php
libxml_use_internal_errors(true); // Negeer warnings over HTML-structuur
$dom = new DOMDocument();
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); // voorkom automatische <html>/<body> tags
$xpath = new DOMXPath($dom);
// Vind ALLE elementen met class "verwijderen" (ook als ze andere classes hebben)
$nodes = $xpath->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' verwijderen ')]");
// Verzamel te verwijderen nodes eerst in array (anders raakt de NodeList corrupt)
$toRemove = [];
foreach ($nodes as $node) {
$toRemove[] = $node;
}
// Verwijder ze nu veilig
foreach ($toRemove as $node) {
$node->parentNode->removeChild($node);
}
// Sla resultaat op
file_put_contents($outputFile, $dom->saveHTML());
?>
Toevoeging op 20/06/2025 15:41:37:
de php oplossing heb ik van chatgpt. kwam er namelijk niet aan uit. Maar deze werkt dus niet helemaal zoals het moet
Gewijzigd op 20/06/2025 16:31:15 door - Ariën -
Wat gaat er mis met de gegeven code?
Vergeet hij er sommige? of worden er te veel verwijderd?
Vergeet hij er sommige? of worden er te veel verwijderd?
hij vergeet degene waarin ook meerdere classes voorkomen. zoals onderstaande welke zich bevindt in <ul en <li:
Even getest, maar bij mij verdwijnt die DIV gewoon, incl de onderliggende button.
Dat is vreemd. Mijn code is uiteraad wat langer als in de voorbeeld. Wellicht bevindt er zich iets in de code dat het verhinderd?
Wat is de tag die blijft staan? (incl alle attributen)
Staat in die tag ook maar 1x 'class="..."?
Is de html valide? heb je die evt. door een html-validator gehaald?
Staat in die tag ook maar 1x 'class="..."?
Is de html valide? heb je die evt. door een html-validator gehaald?
ik heb deze door een html validator gehaald. krijg wel foutmeldingen. maar niet specifiek gericht op het stukje code met de class "verwijderen". uiteraard ontbreekt er bij mij wel de !DOCTYPE html>”. en <head> en <body> maar die worden pas later toegevoegd zodra de pagina is opgebouwd.
Ik heb een nieuwe topic aangemaakt voor wat betreft de html die fouten weergeeft.
link: https://www.phphulp.nl/php/forum/topic/hoe-geldige-html-maken/105126/
Ik heb een nieuwe topic aangemaakt voor wat betreft de html die fouten weergeeft.
link: https://www.phphulp.nl/php/forum/topic/hoe-geldige-html-maken/105126/




