Door
Paul Weiss
op 21-02-2024 19:34
gewijzigd op 21-02-2024 19:42
4.118 views
Ik heb een vraag. ik wil in php een innerhtml functie (of soortgelijk) toepassen om alles binnen een specifiek div element vervolgens op te slaan in een variable.
onderstaande heb ik als voorbeeld het html bronbestand. Van dit bestand wil ik dus de innerhtml verkrijgen van het div element met id "test2". het resultaat zou dus moeten zijn:
<h1>mijn hoofdtekst van id test2</h1>
Echter ik krijg als resultaat zonder de ht tag. (zie ook mijn php)
Hieronder de inhoud van dokument.html
<div id="test1">
<h1>mijn hoofdtekst van id test1</h1>
</div>
<div id="test2">
<h1>mijn hoofdtekst van id test2</h1>
</div>
<div id="test3">
<h1>mijn hoofdtekst van id test3</h1>
</div>
<div class="test2">
<h1>mijn hoofdtekst van class test2</h1>
</div>
// Het gewenste element selecteren op basis van de ID
$element = $dom->getElementById('test2');
// De volledige h1-tag (inclusief inhoud) verkrijgen
$kop = $dom->saveHTML($element->getElementsByTagName('h1')->item(0));
Om even terug te komen op bovenstaande topic. In bovenstaande topic wordt de inhoud van element met id "test2" ingelezen vanaf het externe dokument dokument.html.
Ik wil echter graag wanneer ik dokument.html heb geopend de inhoud aanpassen bijv. via contenteditable etc. vervolgens moet ik de nieuwe inhoud zien te verkrijgen verkrijgen. Wat moet ik aan bovenstaande code precies aanpassen? Ik heb al gezocht, maar kom er niet echt aan uit. alles wat ik kan vinden is voornamelijk gebasseerd op een extern bestand.
Met [php]file_get_contents[/php] kan je de inhoud van een bestand uitlezen.
En met [php]file_put_contents[/php] kan je deze weer schrijven naar het bestand, waarbij de bestaande inhoud overschreven wordt.
Persoonlijk zou ik in plaats van contenteditable een editor gebruiken, zoals CKeditor, TinyMCE of iets anders.
he arien. bedankt voor je bijdrage. maar met file_get_contents wordt de inhoud van een bestandsnaam toch ingelezen? althans zoals ik het lees. wellicht zie ik iets over het hoofd. Maar het is dus de bedoeling dat wanneer ik een bestand heb geopend ik de inhoud (deze kan dus veranderen t.o.v het origineel) van een element met een id moet worden opgeslagen in een variable.
dus als voorbeeld zou ik de gehele inhoud van het element met id "test" willen opslaan in een variable.
<div id="test>
<p>deze inhoud moet worden opgeslagen</p>
</div>
p.s. wat betreft de editor, begrijp waar je heen wilt, maar ik ben dus bezig met een geheel eigen systeem.
contenteditable wordft overigens regelmatig gebruikt bij cms.
Is het technisch niet praktischer om alles in een keer weg te schrijven? Zonder database wordt het wel erg lastig, vrees ik, om delen van je HTML-document op te slaan
Uiteindelijk wil je content gestructureerd opslaan.
he arien. valt wel mee hoor. In de pagina die ik open staan meer dingen. zaken die ik niet hoef op te slaan. zoals laden stylsheet header etc. etc. het gaat echt om een gedeelte en wel waar de content staat die aangepast kan worden. Ik heb daar nu wel een oplossing, maar vind die wat omslachtig. eerst ga ik via javascript de inhoud opslaan in een variable en vervolgens via ajax wordt deze dan doorgestuurd naar een php die deze weer wegschrijft naar een bestand. Maar ik zoek een manier om dit rechtstreeks via php te doen.
Is die er wel?
Ik wil best de gehele pagina opslaan, maar hoe zou dat precies werken?
Je kan dan je pagina verdelen in losse templates, zoals header.html, footer.html, menu.html, content_overons.html, content_routeschrijving.html etc....
ja klopt dat kan inderdaad. dat heb ik ook wel gedeeltelijk al zo gedaan.
Maar is er dan geen manier via php om van de geopende pagina de content van een div element op te vangen? behalve dan dat van een extern bestand?