[PHP] estrarre numero da stringa

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao a tuti,avrei questo problemino. Tramite questo codice estraggo una stringa che contiene un numero:
PHP:
$isin = 'IT0005177271';
$uri = 'http://www.eurotlx.com/it/strumenti/dettaglio/'.$isin.'';
$get = file_get_contents($uri);
$pos1 = strpos($get, "Dati ultimo contratto");
$pos2 = strpos($get, "Quantità", $pos1);
$text = substr($get,$pos1,$pos2-$pos1);
Avrei voluto estrarre solo il numero ma non riesco,quindi se già qualcuno mi può aiutare qui ,una parte del seguente post potrebbe essere superflua .
Ora ottengo come risultato "Dati ultimo contratto Prezzo 100,36"
Io dovrei estrarre solo la parte numerica che poi mi servirà per i calcoli.
L'unica strada che ho trovato è questa:
PHP:
preg_match_all('!\d+!', $text, $result);
$valore = $result[0][0].".".$result[0][1];
Risultato --->>> 100.36
però ora se vado a moltiplicare x 1000 mi dà 100360 e non mette la virgola.Come posso risolvere?
Grazie a tutti
 
Ultima modifica:
Prova con una cosa del genere..
PHP:
<?php
$val1 = 130.258;
$val2 = 9223372036854775.805;
$val3 = 372036854775.60;
$val4 = 100360.60;
$val5 = 123123372036854775.60;

echo number_format($val1,2,",",".").'<br>'; // returns: 130,26 -> Potrebbe fare al caso tuo***
echo number_format($val2,2,",",".").'<br>'; // returns: 9.223.372.036.854.776,00
echo number_format($val3,2,",",".").'<br>'; // returns: 372.036.854.775,60 -> Potrebbe fare al caso tuo***
echo number_format($val4,2,",",".").'<br>'; // returns: 100.360,60
echo number_format($val5,2,",","."); // Superata una certa cifra dopo la virgola mette ,00 e arrotonda.. returns: 123.123.372.036.854.768,00


// quindi dovresti provare una cosa del genere..

$valore = number_format($result[0][0]"."$result[0][1],2,",",".");
 
Ultima modifica:
Ciao e grazie per la risposta
quando provo a fare
PHP:
$controvalore = $valore*100;
ottengo
10000 invece di 10036
Sbaglio qualcosa ?
 
Hai provato a stampare il valore di $valore? Cosa esce fuori?


Inviato dal mio iPhone utilizzando Tapatalk
 
Prova a fare questo..
PHP:
<?php
   //$valore_non_valido = 100,38; => Scrivere questo è un errore, si usa solo il punto, otterresti ->  syntax error, unexpected ','..
  
   // Pertanto non è possibile effettuare operazioni con questo tipo di dato.
   // dovremo fare in modo di formattare il numero dopo i calcoli..
  
   $valore = 100.38;
   $valore_x_100 = $valore*100;
  
   echo number_format($valore_x_100,2,",","."); // 10.038,00

   echo 'EUR '.number_format($valore_x_100,2,",","."); // EUR 10.038,00
  
   echo '&euro; '.number_format($valore_x_100,2,",","."); // € 10.038,00
 
  • Like
Reactions: solari77

Discussioni simili