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

    andare a capo con parola intera

    ragazzi ho un testo da 4000 a 6000 caratteri, lo devo dividere in 3 pezzi, io l'ho diviso con
    Codice PHP:
    <?=substr($dati["testo"], 9251438)?>
    il problema è che vorrei andasse a capo con parole intere e non ad un certo carattere. Esiste un conta parola invece di un conta caratteri?? Oppure c'è un modo per mandare a capo con substr facendogli finire tutta la parola?

    In poche parole devo andare a capo senza trocare le parole.

    Spero ci sia il modo, altrimenti mi arrangio in altre maniere.
    ciaooooo

  2. #2
    guarda questa funzione scritta da andr3a, penso possa esserti utile:

    codice:
    function strSelect( $myString, $maxLength ) {
      // andr3a
      $out = "";
      $s = explode( " ",$myString );
      for( $i = 0, $cs = count( $s ); $i < $cs; $i++ ) {
        $out .= $s[$i]." ";
        if( isSet( $s[$i+1] ) && ( strlen( $out ) + strlen( $s[$i+1] ) ) > $maxLength ) {
          break;
        }
      }
      return rtrim( $out );
    }
    http://www.devpro.it/?php4/code/3/

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    imposta il parametro $num_rows per il numero di righe che vuoi ottenere (nel tuo caso 3)

    <?
    $testo = "la carta vincente della juventus è quella di sostituire sempre del piero. cosi dice capello.";
    $testo .= "Dopotutto bisogna avere pazienza, sono solo 5 anni che non gira!";

    $num_rows = 4; //il numero di righe sul quale dividere il testo

    $step = intval(strlen($testo) / $num_rows);

    /* chiamata all funzione di taglio del testo, passare per riferimento l'array finale $result con i pezzi del testo */
    split_text($testo, $result, $step);

    print_r($result);

    /* funzione ricorsiva di taglio del testo */
    function split_text($fulltext, &$parts, $step){

    $length = strlen($fulltext);
    $start = 0;
    for ($i = 0; $i<count($parts); $i++){
    $start += strlen($parts[$i]);
    }
    $split = $start + $step;
    if ($split >= $length) {
    $end = $length;
    $parts[] = substr($fulltext, $start);
    } else {
    $end = strpos($fulltext," ", $split);
    $parts[] = substr($fulltext, $start, $end - $start);
    }

    if ($end < $length){
    split_text($fulltext, $parts, $step);
    }
    }
    ?>

  4. #4
    uhmm ... wordwrap() vi sta antipatica? :-P
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  5. #5
    Originariamente inviato da drAlberT
    uhmm ... wordwrap() vi sta antipatica? :-P
    a noi ci piace complicarci le cose

    il fatto è che con wordwrap non sai in anticipo quante righe verranno restituite, mentre da quello che ho capito il problema era proprio di avere tot righe.

  6. #6
    Originariamente inviato da kenders_rule
    non male veramente, però io devo dividere il testo in 3 parti, quindi devo sapere la prima parte dove si è interrotta e ripartire da li. Poi dove si interrompe la seconda parte e di nuovo ripartire da li.

    consigli?

    Inoltre wordwrap ho letto

    <?php
    $text = "A very long woooooooooooord.";
    $newtext = wordwrap($text, 8, "\n", 1);

    echo "$newtext\n";
    ?>

    ho capito tutto tranne cosa fa quall'ultimo numero (1). A cosa serve?? NOn ho capito su php.net. ciao e grazie

  7. #7
    il quarto parametro indica che se = 1 deve comunque spezzare la parola senza cercare il primo spazio disponibile

  8. #8
    ok ma allora c'è un modo per ricominciare da dove ha spezzato lui con wordwrap, sarebbe una figata, così diventa una cazzata spezzare il testo, non riesco ad ottenere un output di dove è arrivato?

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.