Visualizzazione risultati 1 fino 4 di 4

Discussione: Verificare azione e uscire dal while

  1. #1
    Guest

    Predefinito Verificare azione e uscire dal while

    Salve a tutti,

    devo controllare che in una stringa, una substringa non si ripeta più di una volta, quindi ho usato questi codici:

    Codice PHP:
    while(substr_count($commentsPage,'<span>'.$author.'</span>') > 1) {
    $tentativi++;
    if(
    $tentativi == count($m[1])) {
    break;
    } else {
    $keys = array_rand($m[1], $cte);
    }
    }
    count($m[1]) indica il numero di substringhe totali, limite massimo dei tentativi, cioè per capirci:

    $commentsPage:

    Codice HTML:
    <span>Uno</span>
    <span>Due</span>
    <span>Tre</span>
    <span>Quattro</span>
    <span>Uno</span>
    Quindi teoricamente, se $author è "Uno", dovrebbe fare il ciclo e generare delle nuove keys.

    Ho testato il codice in una pagina dove c'erano due sole stringhe (<span>Uno</span> <span>Uno</span>) e il while non finiva mai..

  2. #2
    Guest

    Predefinito

    substr_count() restituisce il numero di occorrenze di una sottostringa in una stringa.

    Usarla come variabile di controllo di un ciclo while come hai fatto tu è sbagliato.

    Se ad esempio la sottostringa è presente 2 volte il ciclo non avrà mai fine perchè ad ogni ciclo sempre 2 varrà... quindi sempre maggiore di 1... quindi il ciclo continua all'infinito.

    Ciao.

  3. #3
    Guest

    Predefinito

    Beh, come dovresti fare allora? idee?

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da demobloggest Visualizza messaggio
    Beh, come dovresti fare allora? idee?
    Io non devo fare nulla, mi funziona tutto

    Tu invece potresti dare un'occhiata a un qualsiasi parser DOM che fa proprio quello che ti serve (guarda QUESTO) e un'altra occhiata al ciclo di controllo FOR EACH (vedi QUESTO) che personalmente preferisco al WHILE...

    In pratica dici prima al parser DOM di trovare tutti gli elementi span e poi con un ciclo for each verifichi per ciascuno di essi il contenuto (proprietà innerHTML) e ti regoli di conseguenza del valore che trovi.
    Ultima modifica di pastamadre : 09-10-2012 alle ore 21.28.54

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •