Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768

    trovare DIV annidati col testo

    mbè dal titolo non si capisce molto...

    faccio un esempio:

    mia pagina

    <DIV id="container">

    <DIV id="centro">

    <div id="nome1">
    qui c'è del testo
    </div>

    <div id="nome2">
    anche qui
    </div>

    </DIV>

    </DIV>

    come faccio a far capire allo script che a me interessa solo recuperare gli id:

    nome1 e nome2

    cioè quelli più annidati, anche supponendo che ci sia del testo in centro deve comunque ignorare il "div centro"

    spero di essere stato chiaro

    :master:
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  2. #2
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    All'interno dei div più annidati ci può essere solo testo? Oppure può esserci anche html?
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  3. #3
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    anche html...


    però supponiamo di avere un caso più complicato tipo:

    <div style="margin-left:7px ">
    [img]<?php echo $path_sito; ?>/images/1txt1.jpg[/img]


    <br style="line-height:15px ">

    <div style="margin-left:8px " id="_testo2_">
    [img]<?php echo $path_sito; ?>/images/1im1.jpg[/img]
    <br style="line-height:3px ">
    <strong class="green" style="text-decoration:underline ">Contabilità[/b]

    er adipiscing eraesen asert vestibulum mole lasfe.

    <br style="line-height:5px ">
    dettagli
    [img]<?php echo $path_sito; ?>/images/arrow.jpg[/img]
    </div>
    </div>

    deve prendere solo _testo2_

    ok?
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  4. #4
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    up
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  5. #5
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    and down
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  6. #6
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    up
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Prova questo ( ma non so se funziona in tutti i casi)

    codice:
    <? 
    ob_start(); ?>
    <div id="container"> 
    
    <div id="centro"> 
    
    
    <div id="nome1"> 
    qui c'è del testo 
    </div> 
    
    <div id="nome2"> 
    anche qui 
    </div> 
    
    </div></p> 
    
    </div>
     
    <?
    $contents = ob_get_contents();
    ob_end_clean();
    
    function rtvStringPos($textToSearch, $searchString) {
     $arrayPosStart    = array();
     $offSet           = 0;
     $searchStr        = $searchString;
     $contents         = $textToSearch;
     $position         = strpos($contents,$searchStr,$offSet);
     while ( !($position === false)) {
      $arrayPosStart[]    = str_pad($position, 10, "0", STR_PAD_LEFT);
      $offSet             = $position + strlen($searchStr);
      $position           = strpos($contents,$searchStr,$offSet);
     } // while ( !($position === false))
     return $arrayPosStart;
    } // function rtvStringPos($textToSearch, $searchString)
    
    function annidati($array,$tagSart,$tagEnd) {
     $index = 0;
     $max   = 0;
     $sDiv  = '';
     $rDiv  = '';
     foreach ($array as $key => $value) {
      if (substr($value,10,1) == $tagSart) {
       //-------- Tag start
    	 $index++;
    	 $sDiv  = $value;
      } // if (substr($value,10,1) == $tagSart) 
      if (substr($value,10,1) == $tagEnd) {
       //-------- Tag end
    	 if ($index > $max) {
    	  $max   = $index;
    	  $rDiv  = $sDiv;
    	 } // if ($index > $max)
       $index = 0;	
      } // if (substr($value,10,1) == $tagEnd)  
     } // foreach ($arrMerged as $key => $value)
     $result = substr($rDiv, 0, 10);
     return $result;
    } // function annidati($array,$tagSart,$tagEnd)
    
    //---------- A indica un tag start
    $arrayPosStartDiv = rtvStringPos($contents, '<div');
    foreach ($arrayPosStartDiv as $key => $value) {
     $arrayPosStartDiv[$key] = "${value}A";
    } // foreach ($arrayPosStartDiv as $key => $value)
    
    //---------- B indica un tag end
    $arrayPosEndDiv   = rtvStringPos($contents, '</div');
    foreach ($arrayPosEndDiv as $key => $value) {
     $arrayPosEndDiv[$key] = "${value}B";
    } // foreach ($arrayPosEndDiv as $key => $value)
    
    //---------- Fusione e riordinamento degli due array
    $arrMerged = array_merge ( $arrayPosStartDiv, $arrayPosEndDiv );
    asort($arrMerged);
    
    //------------- Start tag
    $start = annidati($arrMerged,"A","B") ;
    //------------- End tag
    $arrMergedRev = array_reverse ( $arrMerged);
    $end = annidati($arrMergedRev,"B","A") ;
    //------------- Stampa a video
    print substr($contents,$start,$end-$start+strlen('</div>'));
    ?>
    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

  8. #8
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    tutto questo VVoVe:

    grazie per il lavoraccio

    faccio qualche test
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.