2

google book api 为每本书返回一个volumeid。这个volumeid是这样的字符串

AZ5J6B1-4BoC
UvK1Slvkz3MC
OBM3AAAAIAAJ

所以有大写字母,小写字母,破折号(-)下划线(_)等字符

那么是否有将这些字符转换为整数的库?

我也可以将字符串转换为某个数字,例如

[A-Z]=[0-25]
[a-z]=[26-50]
[special characters like -,_,]=[51-...]

上面的自编脚本会好还是 php 中有某些标准函数可以完成这项工作?

4

2 回答 2

5

简单使用http://www.php.net/manual/en/function.ord.php

function num($text)
        {
        $num=null;

        for ($i = 0; $i < strlen($text); $i++)
        {
        $num =$num.ord($text[$i]);
        }

        return($num);
        }

示例 10183491225753109122105505667。它是 30 位长的数字,但如果你想要一个唯一的数字,那就是它。

于 2013-10-23T05:15:39.993 回答
1

为此,没有标准功能。我们为此编写了自定义代码。

 <?php
    function AsciiToInt($char){
    $success = "";
        if(strlen($char) == 1)
            return "char(".ord($char).")";
        else{
            for($i = 0; $i < strlen($char); $i++){
                if($i == strlen($char) - 1)
                    $success = $success.ord($char[$i]);
                else
                    $success = $success.ord($char[$i]).",";
            }
            return "char(".$success.")";
        }
    }
    echo AsciiToInt("<br>");//outputs char(60,98,114,62)
    ?>
于 2013-10-23T04:57:53.697 回答