0

我已经为此工作了一段时间,但我似乎无法弄清楚。我知道这一定很简单。基本上我有一个脚本,它可以作为一个将英语翻译成 Piglatin 的程序,它运行良好,但我希望用户可以选择是否实际操作该脚本,方法是使用带有文本输入的无线电表单说“英语”或“Piglatin”。我已经尝试了所有不同的方法来让它工作,但使用嵌套条件似乎对我来说是最合乎逻辑的答案。但是,每当我尝试使用它运行脚本时,它都不起作用。有人可以告诉我我做错了什么吗?!将不胜感激。谢谢!

HTML 表单:

<p><input type="text" name="original" size="20" maxlength="40" /></label></p>
<p><input type="radio" name="english" value="yes"/>english <input type="radio" name="english" value="no"/>piglatin</p>
<input type="submit" name="submit" value="submit" /></form>

PHP:

<?php # script
$original = $_REQUEST['original'];
$english = $_REQUEST['english'];
$array = explode(" ", $original);

if($english=="no")
{
piglatin = "";
foreach($array as $word)
{
    $word = trim($word);
    $first = substr($word,0,1);
    $rest = substr($word,1,strlen($word)-1);

if (preg_match('/^[aeiou]/', $word)) {
    $word = preg_replace('/^([aeiou].+)$/', "$1-way", $word);
}

elseif (preg_match('/^(th|sh)/', $word)) {
    $word = preg_replace('/^(th|sh)(.+)$/', "$2-$1ay", $word);
}

    else {
       $word = preg_replace('/^[a-z](.+)$/', "$1-$first"."ay", $word);
    }

    $piglatin .= $word ." ";


echo $original ." becomes: ".$piglatin.".";
};

else
{echo $original.".";
};


?>

就像我说的那样,我确信它真的很小而且很简单,因为我一直在看代码,所以我看不到。任何帮助表示赞赏!谢谢!

4

1 回答 1

1

对缩进进行排序,您将看到缺少的右括号。

<?php # script
  $original = $_REQUEST['original'];
  $english = $_REQUEST['english'];
  $array = explode(" ", $original);

  if($english=="no")
  {
    $piglatin = "";
    foreach($array as $word)
    {
      $word = trim($word);
      $first = substr($word,0,1);
      $rest = substr($word,1,strlen($word)-1);

      if (preg_match('/^[aeiou]/', $word)) {
          $word = preg_replace('/^([aeiou].+)$/', "$1-way", $word);
      } elseif (preg_match('/^(th|sh)/', $word)) {
          $word = preg_replace('/^(th|sh)(.+)$/', "$2-$1ay", $word);
      } else {
          $word = preg_replace('/^[a-z](.+)$/', "$1-$first"."ay", $word);
      }
      $piglatin .= $word ." ";
      echo $original ." becomes: ".$piglatin.".";
    };
  } else {
    echo $original.".";
  };
于 2013-04-26T00:52:53.250 回答