Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    estrarre solo i tag div

    non penso che possa esprimermi bene col forum funzionante solo parzialmente.
    Dirò solo che il problema è l'opposto di quanto solitamente richiesto.
    Invece di estrarre il contenuto di uno specifico tag vorrei estrarre solo i tag senza i contenuti:
    <div id="header">
    qui il contenuto di header
    </div>
    <div id="menu">
    qui il contenuto di menu
    </div>

    vorrei una cosa del genere

    <div id="top"> </div>
    <div id="header"> </div>
    <div id="menu"> </div>

    e non il loro contenuto

    Premetto che ho fatto diverse prove con risultato negativo.

    PS
    queste sono solo alcune delle prove che ho fatto
    $pattern = "<div (.*?)>.*\</div>";
    $pattern = '#(<div .*?>).*?(</div>)#';
    Ma forse sbaglio qualcosa

    Grazie per l'aiuto

  2. #2
    un piccolo aiutino????????

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Prova con questo
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Ciao linoma. Grazie per il suggerimento.
    Ho appena provato quello che mi hai suggerito.
    qualcosa ottengo ma non è quello che mi serve
    Nel caso avessi sbagliato ad applicare il suggerimento posto il codice che ho sperimentato:
    $file = "html.txt";
    $doc = new DOMDocument();
    $doc->loadHTMLFile($file);

    $xpath = new DOMXpath($doc);
    $elements = $xpath->query("//*[@id]");
    if (!is_null($elements)) {
    echo "<pre>\n";
    print_r($elements);
    echo "</pre>\n";
    foreach ($elements as $element) {
    echo "<br/>[". $element->nodeName. "]";

    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
    echo $node->nodeValue. "\n";
    }
    }
    } else {
    echo "Trovato nulla!<br />\n";
    }

    ottengo solo questo;

    // col <pre>
    DOMNodeList Object
    (
    )

    // col foreach
    [div]
    [div]
    [div]
    [div]
    [div]
    [div]
    [div]
    Quel che dovrei ottenere è
    <div id="top"> </div>
    <div id="header"> </div>
    <div id="menu"> </div>
    ecc.

  5. #5
    finalmente sono riuscito a rispondere
    ma non riesco a modificare
    Quel che volevo aggiungere era una domanda:
    sbaglio qualcosa o ho bisogno di qualche altra modifica allo script?

  6. #6
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Forse riesci cn strip_tags
    Per gli Spartani e Sparta usa spartan Il mio github

  7. #7
    nemmeno con strip_tags:
    foreach ($nodes as $node) {
    echo strip_tags($node->nodeValue). "\n";
    }
    Stesso risultato:
    [div]
    [div]
    [div]
    [div]
    [div]
    [div]
    [div]

    mi spiace

    PS
    lo strano del risultato è che ho 4 div differenti:

    <div id="main">
    <div id="top"> </div>
    <div id="header">
    qui il contenuto di header
    </div>
    <div id="menu">
    qui il contenuto di menu
    </div>
    </div>

    quindi sarebbero 4 div aperti e 4 chiusi ma il risultato mi restituisce 7 [div]
    Ultima modifica di micdas; 30-03-2015 a 14:42

  8. #8
    Oltre che con strip_tags ho provato anche con htmlspecialchars ma non ottengo l'elenco dei div della pagina.

    Forse quel che pretendo dalla regex è troppo.

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova con : '#(<div .*?>).*?(</div>)#s';

    da me funziona.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Mitico badaze,
    colpito ed affondato.
    mi restituisce gli 8 div contenuti nella pagina di esempio in un array a 3 elementi:
    0: apertura e chiusura dei div
    1: apertura dei div
    2: chiusura dei div
    In questo esempio preleverò il contenuto del primo array[0]

    Grazie del grande aiuto badaze

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.