Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [PHP-DOM] Implementazione metodo innerHTML

    Ciao,
    sto cercando una valida implementazione del metodo non standard innerHTML() per il DOM di PHP.
    Escludendo soluzioni improponibili ammazza-prestazioni con cicli per scorrere tutti i childNodes o calcoli improbabili e str_replace() infiniti, in rete non ho trovato niente.

    Qualcuno di voi si è già imbattuto nel problema o può indicare la direzione per una soluzione intelligente?
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Codice PHP:
    <?php
        
    function innerHTML($node)
        {
            
    $doc = new DOMDocument();
            foreach (
    $node->childNodes as $child$doc->appendChild($doc->importNode($childtrue));

            return 
    $doc->saveHTML();
        }
    ?>

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Ciao, ti ringrazio.
    La soluzione che avevo improntato io era simile nella presenza del ciclo per i childNodes.

    Ho cercato ancora ma sembra che il ciclo dei childNodes non si possa proprio sostituire con qualche metodo della classe DOMDocument & estensioni.

    Il problema è che per nodi con un gran numero di figli di prima linea (il mio caso) le prestazioni scendono un po', anche per l'istanziazione del nuovo documento all'interno della funzione (che non è velocissima).
    Al momento sto risolvendo con le RegExp, ma continuerò a fare dei confronti man mano che vado avanti.
    In fondo, credo che i metodi della stessa classe DOM usino le RegExp per il parsing di una stringa XML/HTML.

    Grazie ugualmente.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.