如何从以下示例字符串中获取ID?

时间:2010-04-07 14:43:32

标签: php

我使用以下方法在我们的网站上填写属性的ID:

function generateAgentRef($id,$length=5,$strPrefix='1'){
    return $strPrefix . str_pad($id,$length,0,0);
}

基本上它将为前缀1,然后用0填充id,直到字符串达到$ length。

但是,我现在要求恢复这个过程。例如,如果我有以下ID:100650,100359,100651,100622,100112,100687,我如何获得ID,例如650,359,651,622,112,687?

希望这能解释我想要实现的目标。

数据库中的ID永远不会以0开头,所以我想迭代字符串的组件并检测我何时触及0以外的其他内容然后拆分字符串。

3 个答案:

答案 0 :(得分:1)

从生成的ref中减去100000,如果长度为6个数字,它可以正常工作intval()

答案 1 :(得分:0)

尝试使用此功能 $ a = substr($ num,3);

这里$ num是你得到的id $ a将是您想要的数字,即100659缩短为659

答案 2 :(得分:0)

扩展您的初始功能

function getAgentId($id, $length = 5, $strPrefix = 1){
    return $id - generateAgentRef(0, $length, $strPrefix);
}

$id = generateAgentRef(255);
echo $id, PHP_EOL; // 100255
echo getAgentId($id), PHP_EOL; //255