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

    Scorrere file cercando 1 stringa

    Ciao a tutti.
    Devo estrarre le ... estrazioni del lotto da televideo, mi collego con la funzione file() e piazzo tutte le righe in un array.
    Come faccio a prendere solo le estrazioni?
    Ho pensato di scorrere con un ciclo tutto l'array, e quando trovo una determinata stringa ("estrazioni del..") inizio ad elaborare con i vari explode() le stringhe successive.
    Oppure potrei usare array_search.. cosa mi consigliate dal punto di vista dell'efficenza e delle prestazioni?

  2. #2
    usando le espressioni regolari risolvi il problema, solo che non so quanto sia legale una cosa del genere, ovviamente se hai chiesto le autorizzazioni o lo stai facendo per loro, beh è cosa ben diversa

    posta il contenuto di una pagina html che la cosa si risolve velocemente

    cmq...ti viene + facile se gestisci tutto in un'unica variabile usando implode che in una variabile array

  3. #3
    ciao,
    per le autorizzazioni ci pensa il cliente

    quella pagina però è un vero problema.. mette tutto in un'unica riga ed usa come separatore i .. il guaio è che questi separatori sono variabili (per separare ROMA dai numeri ne usa magari 10, per separare TORINO ne userà 8 perchè per incolonnare non usa tabelle ma proprio gli spazi arg!)
    la pagina è

    http://www.televideo.rai.it/nazional...top=00&tlv=591

    se la apri in un editor, la riga con le estrazioni è la 189.. tutte in una sola riga

  4. #4
    Originariamente inviato da l'evangelista
    ciao,
    per le autorizzazioni ci pensa il cliente

    quella pagina però è un vero problema.. mette tutto in un'unica riga ed usa come separatore i .. il guaio è che questi separatori sono variabili (per separare ROMA dai numeri ne usa magari 10, per separare TORINO ne userà 8 perchè per incolonnare non usa tabelle ma proprio gli spazi arg!)
    la pagina è

    http://www.televideo.rai.it/nazional...top=00&tlv=591

    se la apri in un editor, la riga con le estrazioni è la 189.. tutte in una sola riga
    MALOL

    visto ora
    non è difficile nel senso che usando le espressioni regolari individui nel contenuto intero qual'è la parte che ti interessa dopo di che... tu sai che ogni riga è separata da 1 BR
    ogni riga contiene prima SOLO delle lettere...poi degli spazi...poi dei numeri, spazi, numeri e cosi via

    quindi sarebbe
    SPAZI TESTO SPAZI NUMERO SPAZI NUMERO SPAZI ...... NUMERO

    ogni numero è di 2 cifre quindi potresti provare qualcosa del genere

    la variabile $contenuto indica le stringhe che contengono la parte che ci interessano
    $num = preg_match_all("/\s([A-Z]+?)\s([0-9]){1,2}\s([0-9]){1,2}\s([0-9]){1,2}\s([0-9]){1,2}\s([0-9]){1,2}\s\<BR\>/i", $contenuto, $risultato);

    diciamo un qualcosa del genere
    per maggiori informazioni
    http://it.php.net/preg_match_all
    http://it.php.net/manual/en/referenc...ern.syntax.php
    http://it.php.net/manual/en/referenc....modifiers.php

    in questo modo nell'array che ti viene ritornato dovresti avere le righe che ti servono + 1 che devi scartare e poi ogni elemento dell'array conterra i vari valori tra le parentesi...quindi il primo valore (zero) conterrà la citta, il secondo il primo numero e cosi via

    ora, dubito che funzionerà a prima botta, ma prova a metterci un po mano tu ^^

    sciauz

    cmq se hai problemi sono a disposizione

    ------

    non ho resistito è ho sistemato l'espressione regolare
    codice:
    <?php
    	$contenuto = implode('', file('http://www.televideo.rai.it/nazionale/solotesto.asp?sottop=00&tlv=591'));
    	$num = preg_match_all("/[]+?([A-Z]+?)[]+?([0-9]{1,2})[]+?([0-9]{1,2})[]+?([0-9]{1,2})[]+?([0-9]{1,2})[]+?([0-9]{1,2})[]+?\<br\>/i", $contenuto, $risultato);
    	echo "<pre>" . print_r($risultato, TRUE) . "</pre>";
    ?>
    va bene anche se gli passi la pagina intera
    dentro $risultato trovi tutte le informazioni che ti servono

    sciauz di nuovo

  5. #5
    ti ringrazio tanto
    nel frattempo ho risolto da solo, ti appassionano sti giochini

    io ho fatto cosi
    Codice PHP:
    function get_lotto(){
        
    $elenco_numeri=array();
        
    $url="http://www.televideo.rai.it/nazionale/solotesto.asp?sottop=00&tlv=591";
        
    $pagina_televideo=file($url);
        foreach(
    $pagina_televideo as $line_num => $line) {
            if(
    eregi("BARI"$line)){
                break;
            }
        } 
        
    //elimina le info precedenti la tabella
        
    $inizio=strpos($line,"BARI");
        
    $elenco_estrazioni=substr($line,$inizio);
        
    $elenco_estrazioni="*".$elenco_estrazioni;
        
    $array_estrazioni=explode("
    "
    ,$elenco_estrazioni);
        while(list(
    $chiave$valore)=each($array_estrazioni)){
            if(
    $chiave <= 9){    
                
    $valore=eregi_replace("(){1,}","*",$valore);
                
    $array_tmp=explode("*",$valore);
                
    $valore=array($array_tmp[2],$array_tmp[3],$array_tmp[4],$array_tmp[5],$array_tmp[6]);
                
    $elenco_numeri[$array_tmp[1]]=$valore;
            }
            else{
                break;
            }
        }
        return 
    $elenco_numeri;    

    addirittura due righe tu VVoVe:

  6. #6
    ah ok adesso ho capito.. mi è stato utilissimo il tuo script anche per estrarre la data dell'estrazione:

    Codice PHP:
    $contenuto implode(''file('http://www.televideo.rai.it/nazionale/solotesto.asp?sottop=00&tlv=591'));
        
    $num preg_match_all("/([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})/"$contenuto$risultato,PREG_PATTERN_ORDER); 

  7. #7
    Originariamente inviato da l'evangelista
    ti ringrazio tanto
    nel frattempo ho risolto da solo, ti appassionano sti giochini

    io ho fatto cosi
    .
    .
    .
    addirittura due righe tu VVoVe:
    in realtà poteva essere una sola....xo poi si incasinava troppo ))

  8. #8
    $contenuto = implode('', file('http://www.televideo.rai.it/nazionale/solotesto.asp?sottop=00&tlv=591'));
    $num = preg_match_all("/([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})/", $contenuto, $risultato,PREG_PATTERN_ORDER);


    chi puo fare una cortesia e tradurre in asp?
    grazie

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Hai ripreso una discussione morta e sepolta per fare una domanda che riguarda l'ASP.
    C'è una sezione del forum apposita. Chiedi lì.

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.