Gå til innhold

[Løst] Problemer med sammenligning


Anbefalte innlegg

Har skrevet et lite script som skal kunne sammenligne ord. Det vil si, om du stokker om på bokstavene i et ord skal scriptet kunne finne ut hvilket ord det er. Idèen er at scriptet sorterer bokstavene i ordet etter alfabetisk rekkefølge, trekker et og et ord ut fra en ordliste og gjør det samme, før den sammenligner ordene. Om de matcher vil scriptet printe ordet det trakk ut av ordlisten.

 

Her er scriptet mitt:

 

<?php

if(!isset($_POST['submit']))
{
echo "
<html>
	<body>
		<form action=\"\" method=\"post\">
			<input type=\"text\" name=\"text\" value=\"text\">
			<input type=\"submit\" name=\"submit\" value=\"submit\">
		</form>
	</body>
</html>";
} else {

$wordlist = fopen("wordlist.txt", "r") or die("Could not open wordlist!");
$text = $_POST['text'] or die("Please enter a word!");

function str_sort($value)
{
$value_array = str_split($value);
sort($value_array);

foreach($value_array as $value)
{
	$output .= $value;
}

return $output;
}

$text_sorted = str_sort($text);

while(!feof($wordlist))
{
$word = fgets($wordlist);
$word_sorted = str_sort($word);

if($word_sorted == $text_sorted)
{
	echo "<br />".$word;
	break;
}
}

fclose($wordlist);

}
?>

Av en eller annen merkelig grunn fungerer dette kun med tall. Selv om ordene blir like etter at bokstavene er sortert, som jeg har sjekket, mener scriptet noe annet. Noen som finner feilen?

Endret av Bakke
Lenke til kommentar
Videoannonse
Annonse

Evt, prøv å trimme ordene som du henter fra filen:

 

Og gjør det case insensitivt, som Jonas sier. Dette gjør du enklest i funksjonen:

return strtolower(trim($output));

 

EDIT: Er vel like greit å både trimme og konvertere til små bokstaver i funksjonen, kanskje ?

 

Forresten, synes det er merkelig med en funksjon inni en else blokk, da...

Endret av kakkle
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...