削除 " " PHPで

With this url http://www.google.com/ig/calculator?hl=fr&q=150euro=?dirhams, we can have a currency convert.

This is the result : {lhs: "150 Euros",rhs: "1 691.50299 Moroccan dirhams",error: "",icc: true}

私はjsonのように見えるこの結果で作業しようとします。 ですから、私は json_decode を使用しますが、動作しません。

だから私はserilize/unserializeのように見えるので、 unserialize を使用しますが、動作しません。

Nervous, I used regexp and at the end I've got my value in dirhams with an   because the value gets 4 numbers before the coma.

And this   I can't delete it ! I try preg_replace, str_replace... no ways !

これは関数です

私はちょうど "dirhams値"、浮動小数点数として、数字を取得したい

誰でも私を助けることができますか?

public function convertDirhams($prix, $monnaie_base = 'euro', $monnaie_convert = 'dirhams')
{
    $prix = urlencode($prix);
    $monnaie_base = urlencode($monnaie_base);
    $monnaie_convert = urlencode($monnaie_convert);
    $url = "http://www.google.com/ig/calculator?hl=fr&q=$prix$monnaie_base=?$monnaie_convert";
    $ch = curl_init();
    $timeout = 0;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,  CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $rawdata = curl_exec($ch);
    curl_close($ch);
    /*$data = explode('"', $rawdata);
    $data = explode(' ', $data['3']);
    $var = $data['0'];*/

    $data = preg_replace('/ /','',$rawdata);
    $data = explode(':',$data);
    $data = preg_replace('/"/','',$data[2]);
    $data = preg_replace('/Moroccandirhams,error/isu','',$data);
    $prix_final = preg_replace("/&#?[a-z0-9]{2,8};/i","",$data);
    //echo $prix_final;


    return (float)trim($data);
} 
0
json_decodeについて「動作しない」とは何ですか? (このコードで  が参照されていないことを考えれば、ここでの問題は非常に疑問です)
追加された 著者 Billy ONeal,
@マークB:本当ですが、私はjson_decodeが厳しいとは思わない。私はATMをテストすることはできません...
追加された 著者 Billy ONeal,
@Billy:json_decodeを使うと、結果を格納するvarは空です。 &nbspというのは大きな問題です。なぜなら、この値をとってZend_Currencyに渡すと、値は数値ではないからです。そして、私が(フロートして)追加すると... 1 600 = 1 <=そしてこれは非常に大きな問題です^^
追加された 著者 Raphaël,
@BillyONealと同じですが、 json_decode()が機能するはずです。どのようなエラーメッセージ/結果がありますか?
追加された 著者 Clement Herreman,
また、 1 691 の間のスペースが** n *であるため、ブラウザで&nsbp; * on ** b ** reaking ** sp ** ace。 &nbsp;はあなたの問題ではありません。
追加された 著者 Clement Herreman,
@ビリー:それは有効なjsonではありません。キーは引用符で囲まれていません。
追加された 著者 Marc B,

1 答え

私はあまりにも私はGoogleの通貨コンバータを使用してこの問題に立ち往生した。私は多くのことを試みたが、何も私のために働いた。最後に私はこのコードを見つけました。

試してみることができます:

$number = preg_replace('/[^a-z0-9.]/', '', $number);

または

$number = ereg_replace("[^A-Za-z0-9.]", "", $number );

Both wまたはks perfectly fine. ereg_replace() is depreciated function in php5.3.

1
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com