Ciao,
ho un problema che non riesco a risolvere e sono sicura che si tratta di una cosa di poco conto, ma ci sto girando intorno da una mattinata e non trovo la soluzione...
Ho uno script che richiama una funzione ed esegue il ciclo:
// funzione
function trova($mioTitolo){
$html = file_get_html('pagWeb');
foreach($html->find('div#risultati') as $e){
foreach($e->find('span[class=nome]') as $s){
$nome = $s->plaintext;
$nome = trim(str_replace("Nome ", "", $nome));
}
foreach($e->find('a[class=titolo]') as $f){
$titolo = $f->plaintext;
}
$valore = $nome;
if(strtolower($titolo) == strtolower($mioTitolo)){
return $valore;
}
}
}
// script
// mettiamo che
$titolo = array("titoloA", "titoloB", "titoloB");
foreach($titolo as $value){
if($name == "Name"){
$nuovoValore = trova($value);
}else{
$nuovoValore = "";
}
echo "Nuovo Valore: ".$nuovoValore;
}
///*** problema ***///
Nella funzione, "titoloB" e "titoloB", pur essendo uguali, hanno due valori diversi.
Il ciclo li trova:
"titoloB(1)" -> "valore1", "valore2"
"titoloB(2)" -> "valore1", "valore2"
ma per entrambi, stampa solo l'ultimo valore, come se non eseguisse il ciclo.
Forse perché, eseguendo la funzione per ogni titolo, è come se ogni volta incontrasse "titoloB" per la prima volta.
La soluzione sarebbe riuscire a differenziare i due "titoloB", ma al momento non ci sono riuscita. Tutti i tentativi mi hanno portata al medesimo errore, persino i più contorti!
Avete suggerimenti?!
Grazie.