Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    memory size exhausted (?)

    Ho una pagina da cui, via AJAX, parte una richiesta ad un'altra pagina .php, per caricare - di volta in volta - un diverso contenuto.
    Mi restituisce questo errore, mai visto prima, e che non capisco (cosa significa, e come risolverlo):
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 64668442 bytes) in D:\Inetpub\vhosts\miodominio.it\httpdocs\testing\l oadsistemazioni.php on line 50
    La riga incriminata è la seconda di queste due:
    Codice PHP:
    for($i strtotime($today); $i<=strtotime($finale); $i strtotime('+1 day',$i)) {   
    $var .= $var  "<option value=\"" date('Y-m-d',$i) . "\""
    che però è presente anche in altre pagine, e non dà alcun problema (è parte di una funzione che mi crea una select popolata con le date, giorno per giorno, di 18 mesi a partire dalla data odierna).
    Qualche suggerimento?
    metatad
    graphic & web design

  2. #2
    Togli il . prima dell'uguale oppure toglio "$var ." dopo l'uguale.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Giusto!!!!....
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Già che ci sono, cmq... poichè - in un'altra pagina - devo costruire 8 select con queste caratteristiche, ma con id diverso, mi chiedevo: come posso attribuire ad una variabile questo blocco di codice, così da poterlo riutilizzare senza calcolarlo 8 volte?
    Avevo pensato ad una cosa così:
    Codice PHP:
    <?PHP
    $select 
    = for($i strtotime($today); $i<=strtotime($finale); $i strtotime('+1 day',$i)) {
      echo 
    "<option value=\"" date('Y-m-d',$i) . "\"";
      if (
    date('w',$i) == 6) {
        echo 
    " style=\"background-color:#ffff00;\""
         }
      if (
    date('w',$i) == 0) {
        echo 
    " style=\"background-color:#a8daf9;\""
         }
     echo 
    ">" giorno(date('d-m-Y',$i)) . ' 'date('j',strtotime(date('d-m-Y',$i))) . ' 'mese(date('d-m-Y',$i)) .' 'date('Y',strtotime(date('d-m-Y',$i))) . "</option>";
    }
    ?>
    <select name="checkin1" id="checkin1">
    <option>selezionare CHECK IN</option><?PHP
    echo $select;
    ?></select>
    ma non funziona...
    metatad
    graphic & web design

  5. #5

  6. #6
    Tra l'altro se tu nel for-statement metti strtotime, lui ogni volta che processa la condizione si va a calcolare strtotime +1day, dovresti salvare il dato in una variabile e passare la variabile alla condizione, cosicchè tu non possa essere causa di stress per il parser

    esempio:

    $maxTime = time()+86400;
    for(xxx;xxx;$maxTime)

    Senza poi che devi anche disturbare il parser per una data che già conosci, per avere il timestamp del giorno dopo, basta che aggiungi 86400 al timestamp corrente

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.