Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36

    togliere le "virgolette" dall'output di un array

    Ciao

    $array = array("abcde" => $valore);

    restituira' , se ad esempio $valore=100 :

    "abcde":"100"


    Ho bisogno che l'array restituisca il valore di $valore SENZA le virgolette:

    "abcde":100

    E' possibile in qualche modo ???

    Grazie !

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, se ritorna 100 è molto probabile che sia stato valorizzato un 100 in formato stringa.
    Se vuo puoi forzare un numero in formato stringa come intero.
    Lo puoi fare con un cast tipo
    codice:
    (int) $valore
    CAST
    Fai un po' di prove e sopratutto con valori non interi. Sicruamente ci sarà da fare in quel caso qualcosa di diverso.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36
    Grazie per la risposta,
    Purtroppo ne so molto poco di programmazione e sto andando a tentativi (maledizione ai vecchi che non hanno studiato da giovani)

    $valore e' il risultato di un file_get_contents

    In pratica ho una sonda di temperatura che mi scrive il valore in gradi centigradi dentro ad un file che viene aggiornato ogni x minuti

    Io devo prendere quel valore numerico e inserirlo in un output json cosi' fatto :
    {"temperatura":38.2}

    quindi in una pagina php ho il codice :
    <?php
    {
    $valore = file_get_contents('/home/test/temperatura');
    header('Content-Type: application/json');
    echo json_encode (array("temperatura" => $valore));
    }
    ?>

    Ma l'output e' appunto {"temperatura":"38.2"} quando il richiesto e' {"temperatura":38.2}

    Qualche idea ?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Potresti fare così lato PHP

    codice:
    $valore = file_get_contents('/home/test/temperatura');
    $valore = (strpos($valore, '.') !== false) ? floatval($valore) : intval($valore);
    header('Content-Type: application/json');
    echo json_encode (array("temperatura" => $valore));

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36
    Gira e rigira ho trovato la soluzione :

    File originale :

    <?php
    {
    $valore = file_get_contents('/home/test/temperatura');
    header('Content-Type: application/json');
    echo json_encode (array("temperatura" => $valore));
    }
    ?>


    File modificato :

    <?php
    {
    $valore = shell_exec('/home/test/temp.sh'); (temp.sh mi rende il valore numerico di temp.)
    $array = array('temperatura' => $valore );
    header('Content-Type: application/json');
    echo json_encode ($array, JSON_NUMERIC_CHECK);
    }
    ?>


    JSON_NUMERIC_CHECK fa in modo che se dei contenuti dell'array sono numerici, non metta le virgolette su di essi


    Hope this helps.....
    Ciao

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.