een div gedeelte uit een bestaande code weg halen?
Ik had hem naar deze site door gestuurd , maar aangezien hij niet veel op forums zit had hij mij gevraagd om deze vraag hier te stellen.
Hij heeft een pagina die hij zo toont.:
Nu zit in die $out code diverse div's waaronder id="hulpjeandre".
Nu is dus zijn vraag, is het mogelijk die id eruit te filteren en de code dan opnieuw te tonen, zo ja wellicht hoe?
Alvast bedankt van zijn kant uit.
De correcte oplossing zou het opsporen van de daadwerkelijke boosdoener en het verwijderen hiervan zijn, niet het na afloop eruit filteren hiervan.
Dan is het misschien ook de vraag of er niet teveel in $out gebeurt waarbij je dus te weinig controle hebt over de output.
Misschien is dit ook een uitgelezen moment om e.e.a. te reverse engineeren en wellicht te vervangen, want het klinkt niet alsof men veel vertrouwen heeft in de omgang met deze code, en een aanspreekpunt heb je niet meer. Dat (legacy code waarvan niemand weet hoe deze werkt) is sowieso een onwenselijke situatie.
https://stackoverflow.com/questions/47130986/how-to-get-html-code-inside-div-with-an-id-with-simplehtmldom-php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$html = '<div id="hulpjeandre">
<div id="second">second</div>
<div class="third">Third</div>
<h1>Fourth</h1>
</div>';
$dom = simplexml_load_string( $html );
$results = $dom->xpath('//div[@id="hulpjeandre"]/*');
$innerHtml = "";
foreach( $results as $result )
{
$innerHtml .= $result->saveXML();
}
echo $innerHtml;
?>
$html = '<div id="hulpjeandre">
<div id="second">second</div>
<div class="third">Third</div>
<h1>Fourth</h1>
</div>';
$dom = simplexml_load_string( $html );
$results = $dom->xpath('//div[@id="hulpjeandre"]/*');
$innerHtml = "";
foreach( $results as $result )
{
$innerHtml .= $result->saveXML();
}
echo $innerHtml;
?>
https://stackoverflow.com/questions/12110519/get-complete-div-content-using-class-name-or-id-using-php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function getHTMLByID($id, $html) {
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$node = $dom->getElementById($id);
if ($node)
{
return $dom->saveXML($node);
}
return 'not found';
}
$html = file_get_contents('extract.html');
echo getHTMLByID('defaultDiv', $html);
?>
function getHTMLByID($id, $html) {
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$node = $dom->getElementById($id);
if ($node)
{
return $dom->saveXML($node);
}
return 'not found';
}
$html = file_get_contents('extract.html');
echo getHTMLByID('defaultDiv', $html);
?>
Gewijzigd op 05/04/2019 12:27:12 door Adoptive Solution
Dit is een band aid, die ook nog eens wat performance kost vanwege de inzet van (zware?) hulpstukken.
En wellicht creëer je hier nieuwe problemen mee. Wat als DOMDocument zich verslikt in een foutieve HTML-opmaak die soms optreedt? :/
Verwijder het uit de bron, dit lijkt mij de enige juiste (en tevens simpelste) oplossing.
Thx, zal hem de codes doorsturen en jullie advies.