【问题标题】:Typo generator PHP错字生成器 PHP
【发布时间】:2013-10-21 16:43:49
【问题描述】:

我偶然发现了一个“错字生成器”脚本。我正在尝试对其进行修改,以便用户可以输入单词并生成拼写错误列表。

这是脚本

$str = $_POST["str"];

function getTypos($str) {
    $typosArr = array();
    $strArr = str_split($str);

    //Proximity of keys on keyboard
    $arr_prox = array();
    $arr_prox['a'] = array('q', 'w', 'z', 'x');
    $arr_prox['b'] = array('v', 'f', 'g', 'h', 'n');
    $arr_prox['c'] = array('x', 's', 'd', 'f', 'v');
    $arr_prox['d'] = array('x', 's', 'w', 'e', 'r', 'f', 'v', 'c');
    $arr_prox['e'] = array('w', 's', 'd', 'f', 'r');
    $arr_prox['f'] = array('c', 'd', 'e', 'r', 't', 'g', 'b', 'v');
    $arr_prox['g'] = array('r', 'f', 'v', 't', 'b', 'y', 'h', 'n');
    $arr_prox['h'] = array('b', 'g', 't', 'y', 'u', 'j', 'm', 'n');
    $arr_prox['i'] = array('u', 'j', 'k', 'l', 'o');
    $arr_prox['j'] = array('n', 'h', 'y', 'u', 'i', 'k', 'm');
    $arr_prox['k'] = array('u', 'j', 'm', 'l', 'o');
    $arr_prox['l'] = array('p', 'o', 'i', 'k', 'm');
    $arr_prox['m'] = array('n', 'h', 'j', 'k', 'l');
    $arr_prox['n'] = array('b', 'g', 'h', 'j', 'm');
    $arr_prox['o'] = array('i', 'k', 'l', 'p');
    $arr_prox['p'] = array('o', 'l');
    $arr_prox['r'] = array('e', 'd', 'f', 'g', 't');
    $arr_prox['s'] = array('q', 'w', 'e', 'z', 'x', 'c');
    $arr_prox['t'] = array('r', 'f', 'g', 'h', 'y');
    $arr_prox['u'] = array('y', 'h', 'j', 'k', 'i');
    $arr_prox['v'] = array('', 'c', 'd', 'f', 'g', 'b');    
    $arr_prox['w'] = array('q', 'a', 's', 'd', 'e');
    $arr_prox['x'] = array('z', 'a', 's', 'd', 'c');
    $arr_prox['y'] = array('t', 'g', 'h', 'j', 'u');
    $arr_prox['z'] = array('x', 's', 'a');
    $arr_prox['1'] = array('q', 'w');
    $arr_prox['2'] = array('q', 'w', 'e');
    $arr_prox['3'] = array('w', 'e', 'r');
    $arr_prox['4'] = array('e', 'r', 't');
    $arr_prox['5'] = array('r', 't', 'y');
    $arr_prox['6'] = array('t', 'y', 'u');
    $arr_prox['7'] = array('y', 'u', 'i');
    $arr_prox['8'] = array('u', 'i', 'o');
    $arr_prox['9'] = array('i', 'o', 'p');
    $arr_prox['0'] = array('o', 'p');

    foreach($strArr as $key=>$value) {
        $temp = $strArr;
        foreach ($arr_prox[$value] as $proximity){
            $temp[$key] = $proximity;
            $typosArr[] = join("", $temp);
        }
    }   

    return $typosArr;
}

我创建了一个带有文本框和提交按钮的 HTML 页面,该按钮将数据发布到上述 php 文件。如何显示结果?我试过echo $typosArr;,但这似乎不起作用。

【问题讨论】:

  • print_r(getTypos($_POST['str'])); ?
  • 先调用它,然后print_r它返回的值。就像在上面的评论中显示的一样
  • 你是个天才。谢谢!
  • 结果显示如下: Array ( [0] => rest [1] => fest [2] => gest [3] ) 我怎样才能在列表中显示它们? (例如休息巨星)

标签: php generator misspelling


【解决方案1】:

您的代码从未真正调用过该函数。命令“print_r()”将是查看数组转储的一种快速而简单的方法。如果您想要更多用户友好的输出,请尝试以下操作:

$str = $_POST["str"];
$results = getTypos($str);
foreach($results as $result) {
   echo $result . '<br />';
}

【讨论】:

  • 完美!这正是我一直在寻找的。谢谢。
猜你喜欢
  • 2017-02-15
  • 1970-01-01
  • 2022-11-18
  • 2018-03-29
  • 2011-05-20
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
相关资源
最近更新 更多