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

    problema con stringhe molto lunghe

    Ho un modulo che prevede l'invio di codice html racchiuso in stringhe molto lunghe.
    Per comodità ho utilizzato una sintassi tipo questa:
    Codice PHP:
    $msg = <<<EOS
    <table>

      <tr>

        <td height="71">

          <div align="center"> 

            <center> eccetera eccetera
            </center>

          </div>



    </td>

      </tr>


    //questa è la linea 604
    </table>
    EOS; 
    dove la variabile $msg contiene il codice html sottoforma di stringa e viene spedita come corpo del messaggio.
    Il problema è che in locale mi funziona, testendo l'invio con podcast server, mentre in rete mi da errore:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /users/88/postmaster@zanettisrl.org/inviato_generico.php on line 604

    la linea 604 l'ho indicata in un commento nel codice sopra.
    Sembra che non mi riconosca la stringa, come mai? Sono abbastanza disperato

  2. #2
    Posta dalla riga 600 alla 610 oppure cerca di isolare quale parte della stringa crea il problema.

  3. #3
    Se per esempio tengo solo:
    Codice PHP:
    $msg =<<<EOS
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </center>
    </div> //linea 481
    </td>
    </tr>
    </table>
    EOS; 
    mi dice:
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /users/88/postmaster@zanettisrl.org/inviato_generico.php on line 481
    Non riesco a venirne a capo.

  4. #4
    A me funziona perfettamente:

    Codice PHP:
    <?php 
    $msg 
    = <<<EOS
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </center>
    </div>
    </td>
    </tr>
    </table>
    EOS;

    print(
    htmlentities($msg));
    ?>

  5. #5
    E' proprio questo il problema, anche a me in locale funziona, ma in rete no.
    Sembra che non riconosca la sintassi <<<EOS stringa EOS; come stringa, infatti anche riducendo ai minimi termini il contenuto, segnala comunque errore.
    Allora chiedo: è possibile che ciò dipenda da alcuni settaggi del file php.ini o settaggi del server?

  6. #6
    Come sospettavo il problema è nel sistema server-php dell'hosting.
    Infatti spostando le pagine php di invio dei moduli su un altro server il problema non c'è.
    L'unica cosa che ho potuto fare è inviare i moduli attraverso un collegamento esterno e reindirizzare al sito di provenienza, insomma un paciugo che sarebbe meglio evitare

  7. #7
    Ho scoperto dov'è che non funziona, non c'entra niente il server.

    Io uso notepad++ per scrivere il codice, ho notato che spuntando l'opzione "Mostra tutti i caratteri" il carattere di ritorno a capo viene identificato con una etichetta CR annerita ed una etichetta LF annerita. Solo che in alcune pagine l'etichetta LF non c'è, non so come mai, spero che qualcuno possa dirmelo.
    Resta il fatto che la notazione <<<EOS stringa EOS; funziona solo nelle pagine dove il ritorno a capo ha la doppia etichettatura, mentre se l'etichetta LF manca l'istruzione EOS; sembra non terminare la stringa.
    Ho risolto con un semplice copia-incolla in un documento che ha entrambe le etichette di ritorno a capo.

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.