3

基本的に、ユーザー入力を取得し、正規表現を使用せずに PHP でピグラタンに変換する、かなり基本的なプログラムを PHP で作成しようとしています。これは、これまでの私のコードがどのように見えるかです。これは問題ありません。

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

$piglatin = "";
foreach($array as $word)
{
    $word = trim($word);
    $first = substr($word,0,1);
    $thsh = substr($word,1,2);
    $thshrest = substr($word,2, strlen($word)-2);
    $rest = substr($word,1,strlen($word)-1);

    if(trim($word)) 
    {
        $piglatin .= (strlen($word)==1)?$first." ":$rest.$first. "ay ";
    }
}

echo $original ." becomes: ".$piglatin;
?>

ただし、単語が母音で始まる場合 (この場合、たとえば「igloo」という単語は「iglooway」と出力する必要があります)、または「th」で始まる場合など、特殊なケースは考慮されません。 "sh" (この場合、たとえば "thimble" という単語は "imblethay" と印刷し、最初の 2 文字だけではなく、最初の 2 文字を最後に付ける必要があります。)

「th」と「sh」で始まる文字列から変数を作成するプロセスを既に開始しています ($thsh と $thshrest を参照)。

すべての助けに感謝します、ありがとう!

4

1 に答える 1

0

ええ、正規表現を使用しない場合は、すべてのケースを手動で確認する必要があります。

if ($first == "a" || $first == "e" || $first == "i" || $first == "o" || $first == "u"){
  $piglatin .= (strlen($word)==1)?$first." ":$word. "ay ";
} elseif ($thsh == "th" || $thsh == "sh") {
  $piglatin .= (strlen($word)==1)?$first." ":$thshrest.$thsh. "ay ";
} else {
  $piglatin .= (strlen($word)==1)?$first." ":$rest.$first. "ay ";
}

(私はこのコードをテストしていません)

于 2014-01-30T17:46:05.450 に答える