0

私が作成している言語のアルファベット間で翻訳する単純な Web ページを作成しています。

仕組みは次のとおりです。

PHP ページは、ローマ字の「x」があるかどうかを確認し、それを自分の言語に対応するキリル文字に置き換えます。正常に動作していましたが、すべての文字を追加し終えた後、動作しなくなりました。これで、出力が空白になります。

これが私のコードです:

<?php
header('content-type: text/html;charset=utf8');
mb_language('uni');
mb_internal_encoding('UTF-8');
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/font/stylesheet.css"/>
<title>Roman Corstek To Cyrillic Corstek</title>
</head>
<body style="font-family: 'dejavusans', sans-serif">
<h1>Roman Corstek To Cyrillic Corstek</h1>
<p>This webpage uses the font 'DejaVu Sans', unless your browser does not support web fonts (all modern web browsers do) because it renders Cyrillic Corstek Glyphs the best, and because it's free and doesn't come with a restrictive <a href="http://www.fontsquirrel.com/license/DejaVu-Sans">license</a>. If you would like to download a copy for yourself click <a href="http://www.fontsquirrel.com/fonts/DejaVu-Sans">here</a>.</p>
<p>Enter your roman text below:</p>
<form action="cyrillic-roman.php">
<textarea cols="50" rows="10" name="roman">
</textarea>
<br/>
<input type="submit">
</form>
<?php
if($_GET['roman'] != "")
{
?>
<h2>Conversion:</h2>
<p><b>You entered:</b></p>
<p><?php echo $_GET['roman']; ?></p>
<p><b>Which in the Cyrillic Corstek Alphabet is:</b></p>
<p>
<?php
$output = $_GET['roman'];

//A With Macron
$output = str_replace("Ā", "Ă", $output);
$output = str_replace("ā", "ă", $output);

//B
$output = str_replace("B", "Б", $output);
$output = str_replace("b", "б", $output);

//V
$output = str_replace("V", "В", $output);
$output = str_replace("v", "в", $output);

//G
$output = str_replace("G", "Г", $output);
$output = str_replace("g", "г", $output);

//D
$output = str_replace("D", "Д", $output);
$output = str_replace("d", "д", $output);

//Œ
$output = str_replace("Œ", "Ё", $output);
$output = str_replace("œ", "ё", $output);

//Ž
$output = str_replace("Ž", "Ж", $output);
$output = str_replace("ž", "ж", $output);

//Í
$output = str_replace("Í", "И", $output);
$output = str_replace("í", "и", $output);

//J
$output = str_replace("J", "Й", $output);
$output = str_replace("j", "й", $output);

//K
$output = str_replace("K", "К", $output);
$output = str_replace("k", "к", $output);

//L
$output = str_replace("L", "Л", $output);
$output = str_replace("l", "л", $output);

//M
$output = str_replace("M", "М", $output);
$output = str_replace("m", "м", $output);

//N
$output = str_replace("N", "Н", $output);
$output = str_replace("n", "н", $output);

//Ó
$output = str_replace("Ó", "Ŏ", $output);
$output = str_replace("ó", "ŏ", $output);

//E
$output = str_replace("E", "Э", $output);
$output = str_replace("e", "э", $output);

//Ŋ
$output = str_replace("Ŋ", "Ң", $output);
$output = str_replace("ŋ", "ң", $output);

//Ñ
$output = str_replace("Ñ", "Н̆", $output);
$output = str_replace("ñ", "н̆", $output);

//P
$output = str_replace("P", "П", $output);
$output = str_replace("p", "п", $output);

//R
$output = str_replace("R", "Р", $output);
$output = str_replace("r", "р", $output);

//Ů
$output = str_replace("Ů", "У", $output);
$output = str_replace("ů", "у", $output);

//F
$output = str_replace("F", "Ф", $output);
$output = str_replace("f", "ф", $output);

//S
$output = str_replace("S", "Ц", $output);
$output = str_replace("s", "ц", $output);

//Č
$output = str_repalce("Č", "Ч", $output);
$output = str_replace("č", "ч", $output);

//Š
$output = str_replace("Š", "Ш", $output);
$output = str_replace("š", "ш", $output);

//H
$output = str_replace("H", "Һ", $output);
$output = str_replace("h", "һ", $output);

//Þ
$output = str_replace("Þ", "Ө", $output);
$output = str_replace("þ", "ө", $output);

//Q
$output = str_replace("Q", "Қ", $output);
$output = str_replace("q", "қ", $output);

//U
$output = str_replace("U", "Ұ", $output);
$output = str_replace("u", "ұ", $output);

//W
$output = str_replace("W", "Ю", $output);
$output = str_replace("w", "ю", $output);

//Ď
$output = str_replace("Ď", "Ь", $output);
$output = str_replace("ď", "ь", $output);

//Ť
$output = str_replace("Ť", "Ъ", $output);
$output = str_replace("ť", "ъ", $output);

//Ī
$output = str_replace("Ī", "V", $output);
$output = str_replace("ī", "v", $output);

//É
$output = str_replace("É", "Ѣ", $output);
$output = str_repalce("é", "ѣ", $output);

//Y
$output = str_replace("Y", "Е", $output);
$output = str_replace("y", "е", $output);

//Ğ
$output = str_replace("Ğ", "Җ", $output);
$output = str_repalce("ğ", "җ", $output);

//Z
$output = str_replace("Z", "З", $output);
$output = str_replace("z", "з", $output);





echo $output;
?>
<?php
}
?>\
</body>
</html>

私は何を間違っていますか?

4

2 に答える 2

1

文字のstr_repalce代わりに関数を使用します。str_replaceČ

タイプミスを修正するだけで、再び機能します。


コードサイズを縮小するには (str_replace配列も受け入れます):

$output = str_replace(array("Ā", "ā", ...), array("Ă", "ă", ...), $output);

次回: PHP コードの先頭に次のように記述します。

ini_set("display_errors", "On");
error_reporting(-1);

これは、エラーを見つけるのに役立ちます。

于 2013-07-26T21:01:23.930 に答える
1

何度も使用するのではなく、すべての文字に対して 1 回でstr_replace使用できます。strtr

$from = "ĀāBbVvGgDdŒœŽžÍíJjKkLlMmNnÓóEeŊŋPpRrŮůFfSsČ芚HhÞþQqUuWwĎĪīÉéYyĞğZz";
$to = "ĂăБбВвГгДдЁёЖжИиЙйКкЛлМмНнŎŏЭэҢңПпРрУуФфЦцЧчШшҺһӨөҚқҰұЮюЬьЪъVvѢѣЕеҖҗЗз";
$text = strtr($text, $from, $to);
于 2013-07-26T21:03:03.790 に答える