Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    espressione regolare in un ciclo. si può?

    Salve a tutti. Avrei bisogno di un'informazione.

    Ho quest'espressione regolare di anakin che permette di recuperare la parte iniziale di una stringa.

    $len = 20;

    preg_match("/^(?=(.{{$len},}?\b))/s",$descrizione,$mth1);
    echo $mth1[1].'...';

    funziona perfettamente ma se la inserisco all'interno ad esempio di un while per visualizzare l'intro
    di un testo mi restituisce un bel notice di undefined offset (ovviamente per il primo record funziona).
    Per il momento ho aggirato il problema con una funzioncina ma vorrei sapere se in qualche modo è possibile usare una regexp dentro un ciclo. Grazie per l'attenzione.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Mi correggo. In realtà non visualizza sempre solo il primo record correttamente ma un numero che varia in funzione di non so che cosa.

    Posto un breve esempio.

    Codice PHP:
    $query mysql_query("select descrizione from prova") or die(mysql_error());

    $len 20// visualizza 20 caratteri e arrotonda per eccesso all'ultima parola
    while($row mysql_fetch_assoc($query))
    {
    $descrizione $row['descrizione'];
    preg_match("/^(?=(.{{$len},}?\b))/s",$descrizione,$mth1); 
    echo 
    $mth1[1].'...';
    echo 
    "
    "
    ;

    Nello specifico la mia tabella contiene 11 record. I primi 6 vengono mostrati senza problemi mentre per gli altri 5 ottengo altrettanti Notice: Undefined offset: 1.
    Da cosa può dipendere? :master:

  3. #3
    ho visto l'errore e penso sia quello, ammeno che non mi confondo, non dovrebbe mica essere

    Codice PHP:
    $mth1 preg_match("/^(?=(.{{$len},}?b))/s","",$descrizione); 
    purtroppo non vorrei confondermi....

    Errare e' umano, ma per fare veramente casino serve la password di root.
    Coltiva Linux........Tanto windows si impianta da solo!!!!!
    PHP 4 Ever

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ciao Mix. Grazie per la risposta.
    Ho appena fatto un'altra prova. Mi sono creato una nuova tabella nella quale ho inserito una dozzina di record. Questa volta ha funzionato perfettamente.

    Ovviamente nel caso precedente tutti gli 11 record erano correttamente popolati. Magari era solo
    un problema di tabella danneggiata e l'espressione regolare posso tranquillamente usarla all'nterno di un while.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da nicola75ss
    Mi correggo. In realtà non visualizza sempre solo il primo record correttamente ma un numero che varia in funzione di non so che cosa.

    Altro che tabella danneggiata. Semplicemente mi restituiva i notice quando la stringa era di lunghezza inferiore a quella assegnata a $len. Bastava fare un if e visualizzare la descrizione per intero nel caso strlen fosse inferiore a $len.
    Chiedo scusa a tutti e vado a tirarmi un altro pò la testa al muro.

  6. #6
    naaaa il muro fà troppo male.....

    Errare e' umano, ma per fare veramente casino serve la password di root.
    Coltiva Linux........Tanto windows si impianta da solo!!!!!
    PHP 4 Ever

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.