Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    selezionare parte di stringa

    Ciao a tutti .... sto mettendo a punto un sistema di news e vorrei che in una tabella vengano visualizzati oltre ad altri soliti dati anche l'anteprima della notizia ... tipo i primi 100 caratteri.
    E' possibile manipolando l'intera notizia estraendo appunto la parte iniziale???

    e poi vorrei che cliccando sulla medesima comparisse in un altra pagina l'intera news ....

    mi date qualche dritta per cortesia????

    ciao e grazie a tutti

    gol
    diego

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    7
    Mettiamo caso che il contenuto della tua news tu l'abbia già estratto dal DB e ce l'abbia in una variabile $testo_news, usa questa funzione:

    Codice PHP:
    function tronca_stringa($stringa$max_length){
        if (
    strlen($stringa) > $max_length) {
        
    $stringa_cut substr($stringa,0,$max_length);
        
    $last_stringa substr($stringa_cut,-7,$max_length);
        if ((
    stripos($last_stringa'&'))!=FALSE ){ 
          
    $max_length $max_length+7;
        }
        
    $stringa substr($stringa,0,$max_length);
            
    $stringa .= '...';
        }
      return 
    strip_tags($stringa'
    '
    );

    Utilizzo:
    Codice PHP:
    echo tronca_stringa($testo_news100); 
    Aggiunge i tre puntini (che puoi commentare se non ti servono), gestisce i caratteri speciali (à etc..) e elimina i tags in modo che non si formi un layout errato a causa di tags html non chiusi oltre la lunghezza della stringa stessa.

    Sulla seconda domanda dipende anche come hai strutturato il DB comunque il metodo più utilizzato è passare l'id della news su una nuova pagina dove effettuare la query e selezionare nuovamente i dati dal DB stampando poi l'intera news.


  3. #3
    Grazie veramente dreddi ... mo ci provo

    ciao

    gol
    diego

  4. #4
    Mitico funzionaaaaaaaaaa .....

    mi hai insegnato una cosa nuova

    ciao e grazie di nuovo

    gol
    diego

  5. #5
    Ha solo un piccolo difetto. Tronca con precisione al centesimo carattere, anche tagliando una parola a metà. Vi propongo un'altra soluzione che tiene conto anche delle parole. Non è così precisa (nel senso che stampa almeno 100 caratteri, poi possono essere 105 perchè non tronca una parola a metà) ma evita quella brutta cosa.

    Codice PHP:
    function tronca_stringa($stringa$max_length)

        
    $Str_Array explode(" "$stringa);
        
    $Result "";
        
    $caratteri 0;
        
    $inc 0;
        
            while(
    $caratteri $max_length)
            {
                
    $caratteri $caratteri strlen($Str_Array[$inc]) + 1;
                
    $Result .= $Str_Array[$inc] . " ";
                
    $inc++;
            }
        
        
    $Result .= "...";
        
        return 
    $Result;   

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    siete tutti bravi non ho parole vero ... avevo notato quel problema e comunque non mi sarei mai azzardato a fare una richiesta cosi' mirata pensando sia impossibile esaudirla...!

    mi fai ancora una cortesia??? se hai un attimo di tempo e voglia, mi spieghi la funzione ... ??

    non ne vengo fuori

    ciao e grazie

    gol
    diego

  7. #7

  8. #8
    Grazie ... adesso basta studiare !!

    ciao
    diego

  9. #9
    nel senso che ora bisogna darsi da fare per capire ... ostico pero' sto php ...
    diego

  10. #10
    Originariamente inviato da gollit
    siete tutti bravi non ho parole vero ... avevo notato quel problema e comunque non mi sarei mai azzardato a fare una richiesta cosi' mirata pensando sia impossibile esaudirla...!

    mi fai ancora una cortesia??? se hai un attimo di tempo e voglia, mi spieghi la funzione ... ??

    non ne vengo fuori

    ciao e grazie

    gol
    Non è così difficile. Tieni conto che comunque è molto "grezza". Si potrebbe ulteriormente perfezionare verificando se nel testo ci sono dei tag html, e ovviamente non tenerne conto nel conteggio.
    Comunque te la spiego subito:


    Codice PHP:
    function tronca_stringa($stringa$max_length

        
    $Str_Array explode(" "$stringa); // Creo un array dove ogni elemento è una parola. In pratica divido per ogni spazio 
        
    $Result ""// Qui inizzializzo le variabili che utilizzerò nel ciclo
        
    $caratteri 0
        
    $inc 0
         
            while(
    $caratteri $max_length// Finchè il numero di caratteri contati è minore al numero massimo di caratteri
            

                
    $caratteri $caratteri strlen($Str_Array[$inc]) + 1//aggiungo a $caratteri il numero di caratteri di ogni parola più 1 (lo spazio).
                
    $Result .= $Str_Array[$inc] . " "// Agginugo alla stringa la parola più lo spazio che la segue
                
    $inc++; 
            } 
         
        
    $Result .= "..."
         
        return 
    $Result;    

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

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.