hoe kan ik dit eruit filteren?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Paul Weiss

Paul Weiss

20/06/2025 15:40:28
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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());


?>


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 -
 
PHP hulp

PHP hulp

18/07/2025 21:40:07
 
Ivo P

Ivo P

20/06/2025 22:44:37
Quote Anchor link
Wat gaat er mis met de gegeven code?

Vergeet hij er sommige? of worden er te veel verwijderd?
 
Paul Weiss

Paul Weiss

20/06/2025 23:11:53
Quote Anchor link
hij vergeet degene waarin ook meerdere classes voorkomen. zoals onderstaande welke zich bevindt in <ul en <li:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<div class="verwijderen centreren-tekst">
<button data-id="button1-9827" onclick="remove_menuitem(this)" type="button">deze wordt niet verwijderd</button>
</div>
 
Ivo P

Ivo P

22/06/2025 15:30:58
Quote Anchor link
Even getest, maar bij mij verdwijnt die DIV gewoon, incl de onderliggende button.
 
Paul Weiss

Paul Weiss

22/06/2025 23:00:12
Quote Anchor link
Dat is vreemd. Mijn code is uiteraad wat langer als in de voorbeeld. Wellicht bevindt er zich iets in de code dat het verhinderd?
 
Ivo P

Ivo P

23/06/2025 09:28:12
Quote Anchor link
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?
 
Paul Weiss

Paul Weiss

23/06/2025 11:57:06
Quote Anchor link
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/
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.