字母到触摸音号输出

Bro*_*ke. 6 php class function tropo

我试过谷歌搜索但不确定什么是最好的东西.我想要做的是翻译文本输入以输出按键式电话的字母.例如Hello World,输出43550 96153的想法是我正在尝试使用tropo语音api系统,并希望用户能够输入他们的名称作为按键音值,并将其与他们的名称匹配为我的数据库中的数字.

我假设这可以通过一个函数来完成

$input= $touchtone_value;  
$number_two_array (a,b,c);  
if( $input==in_array($number_two_array)){ 
        $output = '2';
}
Run Code Online (Sandbox Code Playgroud)

我相信这会奏效.但是,如果有一个类或更简单的功能,而不是将每个字母分成数字数组,我认为这将是一个更好的方法.在这一点上,这是一个相当开放的问题,因为我没有想法从哪里开始作为实现这一目标的最佳方式.

编辑:我找到了一个解决方案,不确定它是最好的解决方案.

            $input = strtolower('HELLO WORLD');
            echo  'input: '. $input. "\n";
            echo $output = 'output: '.  strtr($input,'abcdefghijklmnopqrstuvwxyz', '22233344455566677778889999'); 

input:hello world 
output: 43556 96753
Run Code Online (Sandbox Code Playgroud)

现在我只需要找到一种方法来删除空格:) http://codepad.org/Ieug0Zuw

来源:将数字编码成字母

Dut*_*432 2

像这样的结构怎么样...注意:这将忽略无效的“字母”,如空格、标点符号等。

现场演示 http://codepad.org/pQHGhm7Y

<?php
    echo getNumbersFromText('Hello There').'<br />';
    echo getNumbersFromText('This is a really long text string').'<br />';

    function getNumbersFromText($inp){
        $result=array();
        $inp = strtolower($inp);
        $keypad = array('a' => '2', 'b' => '2', 'c' => '2', 'd' => '3',
            'e' => '3', 'f' => '3', 'g' => '4', 'h' => '4',
            'i' => '4', 'j' => '5', 'k' => '5', 'l' => '5',
            'm' => '6', 'n' => '6', 'o' => '6', 'p' => '7',
            'q' => '7', 'r' => '7', 's' => '7', 't' => '8',
            'u' => '8', 'v' => '8', 'w' => '9', 'x' => '9',
            'y' => '9', 'z' => '9');

        for ($x=0; $x<strlen($inp); $x++){
            $letter = $inp[$x];
            if ($keypad[$letter]) $result[]= $keypad[$letter];
        }
        return implode('',$result);
    }
?>
Run Code Online (Sandbox Code Playgroud)