View Single Post
Old 16-12-2005, 23:44   #2
DarkMic
Member
 
Iscritto dal: Jun 2004
Cittā: Catania
Messaggi: 88
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
DarkMic č offline   Rispondi citando il messaggio o parte di esso