dqmdlo9674 2017-10-02 23:17 采纳率: 100%
浏览 64
已采纳

使用字符串中的字符串填充变量

I have tried various PHP str_* functions, but can't find the right combination of replace, explode(), etc. to do what I need.

I want to grab some specific text that will be in a string -ex below:

Terms of Service ID: #928374 (Val: $2.50, Add'l fee: 10.25%)

Note the string pieces in bold. I need to grab them from that main string. These bolded values of course change several times per user, which is really throwing me off. The non-bolded text is consistent/constant.

Does anyone know if what I am attempting- can be accomplished? If so, could you please provide some guidance/insight? Would be much appreciated.

  • 写回答

3条回答 默认 最新

  • dounao2829 2017-10-02 23:36
    关注

    Given that most of the values are static, you can replace (most of the) static values from the string and explode on spaces. Then you're left with the three values (with a comma on the values, which you can trim away).

    $replace = array("Terms of Service ID: #", "(Val: $", "Add'l fee: ", "%)");
    $string = "Terms of Service ID: #928374 (Val: $2.50, Add'l fee: 10.25%)";
    
    $result = str_replace($replace, "", $string);  // Replace static strings
    $pieces = explode(" ", $result);               // Explode on spaces, get pieces
    $pieces[1] = rtrim($pieces[1], ",");           // Trim away the trailing comma
    
    $id = $pieces[0];
    $value = $pieces[1];
    $fee_percent = $pieces[2];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?