2016-03-03 59 views
1

我有功能get_price_data();,它給出0,11 \作爲返回值。在php中刪除部分變量字符串

The 0,11不是靜態的。 我想用下面的字符串做「0,11」

下面顯示的我的代碼不起作用,我希望如此。有人有任何想法如何我可以完成這項任務?我很新的PHP。

<?php 
function get_price_data() { 
    $json = file_get_contents("http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=Chroma%202%20Case"); 
    $decode = json_decode($json,1); 
    echo $decode['median_price']; 
} 

$string=get_price_data(); 
$string2 = str_replace("\u20ac","",$string); 
echo $string2 * 1000 - 120; 
?> 
+0

是0,11兩個值(例如0和11)還是一個(例如0.11)?他們也應該是整數?在德國 – KorreyD

+0

0,11就像你的0.11 ... Sry之前應該說過。所以這是一個價值。我不知道你是否需要將它轉換爲整數。 –

+0

echo floatval(str_replace(',','。',$ string));返回0.11(其中$ string =「0,11 \ u20ac」)。只要$ string中的數字後面跟着一些非數字值(如€) – KorreyD

回答

1
<?php 
function get_price_data() { 
    $json = file_get_contents("http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=Chroma%202%20Case"); 
    $decode = json_decode($json,1); 
    return $decode['median_price']; // return here instead of echo. 
} 

你有些正確的,這return是必要的,因爲這是一個函數。一個return語句不是PHP函數特別要求(功能默認情況下將返回null如果沒有明確的返回值。),你需要它返回的原因是,你在這個語句中使用其返回值:

$string=get_price_data(); 

隨着echo而不是return$string將被設置爲null在這裏,它的任何後續操作顯然不會做你想要的。

如果你改變你的函數return$decode['median_price']值,然後$string=get_price_data();將分配給0,11€$string,然後你的更換和計算的預期應工作。

$string=str_replace(array('€','\u20ac'),'',$string); 
$string = str_replace(",",".",$string); // replace , with . as noted by mertizci 
echo $string * 1000 - 120; 
?> 
0

由於價格改變後的逗號,PHP不能做數學運算。你也應該用點來改變逗號。

你的代碼應該(編輯):

<?php 
$string=get_price_data(); 
$string=str_replace(array('€','\u20ac'),'',$string); 
$string = str_replace(",",".",$string); 
echo $string * 1000 - 120; 
    ?> 
+0

謝謝你的回答,但這對我不起作用。它會給你「0,11€-120」..那不是我想要的:D –

+0

@LaurinM。我編輯了上面的代碼,看看這個。 – mertizci

+0

是否適合你?我還更新了上面的代碼。對我來說,你的新代碼無法正常工作......只需複製並粘貼即可。 –