|
Ecco il codice corretto.
Ci sono solo alcuni notice, basta fare un controllo se sono settate le variabili oppure abbassi il livello di errori.
Nello script c'erano abbastanza errori. Non penso proprio che l'aggiornamento di php e apache provocasse errori sintattici e logici
<html>
<body>
<?php
$lettertomorse=array();
$lettertomorse["a"]=".-";
$lettertomorse["b"]="-...";
$lettertomorse["c"]="-.-.";
$lettertomorse["d"]="-..";
$lettertomorse["e"]=".";
$lettertomorse["f"]="..-.";
$lettertomorse["g"]="--.";
$lettertomorse["h"]="....";
$lettertomorse["i"]="..";
$lettertomorse["j"]=".---";
$lettertomorse["k"]=".-.";
$lettertomorse["l"]=".-..";
$lettertomorse["m"]="--";
$lettertomorse["n"]="-.";
$lettertomorse["o"]="---";
$lettertomorse["p"]=".--.";
$lettertomorse["q"]="--.-";
$lettertomorse["r"]=".-.";
$lettertomorse["s"]="...";
$lettertomorse["t"]="-";
$lettertomorse["u"]="..-";
$lettertomorse["v"]="...-";
$lettertomorse["w"]=".--";
$lettertomorse["x"]="-..-";
$lettertomorse["y"]="-.--";
$lettertomorse["z"]="--..";
$lettertomorse["1"]=".----";
$lettertomorse["2"]="..---";
$lettertomorse["3"]="...--";
$lettertomorse["4"]="....-";
$lettertomorse["5"]=".....";
$lettertomorse["6"]="-....";
$lettertomorse["7"]="--...";
$lettertomorse["8"]="---..";
$lettertomorse["9"]="----.";
$lettertomorse["0"]="-----";
$lettertomorse[" "]=" ";
$lettertomorse["."]=".-.-.-";
$lettertomorse[","]="--..--";
$lettertomorse["EOM"]=".-.-.";
$morsetoletter=array();
reset($lettertomorse);
while (list($letter,$code)=each($lettertomorse)) {
$morsetoletter[$code]=$letter;
}
function morse_encode($testo)
{
global $lettertomorse;
$line="";
for ($i=0;$i<strlen($testo);$i++) {
$letter=substr($testo,$i,1);
// ignore unknown characters
if ($lettertomorse[$letter]=="") continue;
$line.=$lettertomorse[$letter]." ";
}
return $line;
}
function morse_decode($string) {
global $morsetoletter;
$line="";
$letters=array();
$letters=explode(" ",$string);
foreach ($letters as $letter) {
// ignore unknown characters
if ($letter=="") $line.=" ";
if ($morsetoletter[$letter]=="") continue;
$line.=$morsetoletter[$letter];
}
return $line;
}
?>
<h1>Morse transletter</h1>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Real life text: <input type="text" name="txt" size=50>
<br>
Morse text: <input type="text" name="morse" size=50>
<input type="submit" value="Convert">
<input type="reset">
<br>
<hr>
<?php
if ($_POST['morse'] != "" ) {
echo morse_decode($_POST['morse']) . "<br>\n";
}
if ($_POST['txt']!="") {
echo morse_encode($_POST['txt']) . "<br>\n";
}
if ($_POST['txt']!="") {
echo "<hr>\n<pre>";
$line1="";
$line2="";
for ($i=0;$i<strlen($_POST['txt']);$i++) {
$letter=substr($_POST['txt'],$i,1);
// ignore unknown characters
if ($lettertomorse[$letter]=="") continue;
$line1.=$lettertomorse[$letter]." ";
$line2.=$letter;
for ($j=0;$j<strlen($lettertomorse[$letter]);$j++)
$line2.=" ";
$size+=strlen($lettertomorse[$letter])+1;
if ($size>70) {
echo "$line1\n";
echo "$line2\n";
echo "\n";
$line1="";
$line2="";
$size=0;
}
}
echo "$line1\n";
echo "$line2\n";
echo "\n";
echo "\n</pre>\n";
}
?>
</body>
</html>
__________________
Mic
|