我试图删除字符串中的最后一个字符。我已经看到很多例子可以做到这一点,但所有方法都删除了我的所有'&'但我只想要我的最后一个角色'&'被删除。
我的字符串是:
https://website.biz/get/#TYPE#? PARTNER_ID = XXXXXXXX&安培; api_password = XXXXXXXX&安培; mobile_no =#NUMBER#&安培; operator_code =#OPERATORID#&安培;量=#AMOUNT#&安培; partner_request_id =#ORDERID#&安培;圆= 10安培; recharge_type = NORMAL&安培;
完整的API是动态的。我想删除最后一个字符串'&'从这个字符串。上面的代码来自我的PHP代码:
<td><?php $parameter = fetchAPIparameter($v6['api_id'],$v6['operator_type']);
foreach ($parameter as $v7) {
$pks = ($v7['parameter'].'='.$v7['result'].'&'); echo ($pks);
} ?></td>
我使用了substr($pks,0,-1)
和substr_replace($pks,"",-1)
以及rtrim
和mb_substr
,但所有人都删除了完整的'&amp;'来自我的API。你能帮我解决一下我的错误吗?
答案 0 :(得分:1)
您需要在变量中构建一个字符串,然后删除最后一个字符 你这样做的方法是删除每次迭代的最后一个字符,这不是你想要的。
<td><?php
$parameter = fetchAPIparameter($v6['api_id'],$v6['operator_type']);
$pks = "";
foreach ($parameter as $v7) {
$pks .= ($v7['parameter'].'='.$v7['result'].'&'); //here i am getting error
}
echo substr($pks,0,-1);
?></td>
.=
表示它会追加到字符串中
substr
将回显除最后一个角色以外的所有角色。
答案 1 :(得分:0)
虽然如果以正确的方式应用substr
,它应该有效,但在您的情况下,最好阻止添加最后一个&
。为此,您可以使用implode
:
$parameter = fetchAPIparameter($v6['api_id'],$v6['operator_type']);
$pks=[];
foreach ($parameter as $v7) {
$pks[] = $v7['parameter'].'='.$v7['result'];
}
$pks = "https://website.biz/get/#TYPE#?" . implode("&", $pks);
echo $pks;
答案 2 :(得分:0)
你可以这样试试并使用http_build_query:
$result = [];
foreach ($parameter as $v7) {
$result[$v7['parameter']] = $v7['result'];
}
$pks = "https://website.biz/get/#TYPE#?" . http_build_query($result);
这将使用&#39;参数&#39;来构建数组$result
。作为关键和结果&#39;作为价值。然后http_build_query将生成一个URL编码的查询字符串。