Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Nieudane porówanie dwóch stringów
kabanek
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 2
Dołączył: 25.06.2009
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


witam,

mam dość dziwny problem. Napisałem taką oto funkcję:
  1. private function compareOutputs($userOutput, $output) {
  2. if ($userOutput == $output)
  3. return CODE_OK;
  4.  
  5. echo "Output: >>{$output}<<<br>";
  6. echo "userOutput: >>{$userOutput}<<<br>";
  7.  
  8. return CODE_WRONG;
  9. }


jak widać jako parametry podaję dwie zmienne (tekstowe), które mają zostać porównane. Problem polega na tym, że coś mi umyka i gdy podam dwie wartości, które są takie same, to funkcja mi się myli. Tak wiem... brzmi to dziwnie... Wartość stałej CODE_WRONG to 5, natomiast CODE_OK to 0. Po wykonaniu tej funkcji wyświetlam dodatkowo wynik działania tej funkcji. Oto przykładowy wynik (kod html)
  1. Output: >>world
  2. <<<br>userOutput: >>world
  3. <<<br>5

Jak widać i jedna i druga zmienna zawierają tekst "world" po czym jest jedna wolna linia. Dlaczego to nie przechodzi, kurne no... Przecież to podstawy są (IMG:style_emoticons/default/tiredsmiley.gif) a błąd pewnie jakiś prosty (IMG:style_emoticons/default/dry.gif)

EDIT:
w dodatku nie widzę tam żadnych białych znaków, które mogłyby się tam ukryć. Może to coś da, ale jedną wartość pobieram z bazy danych, natomiast druga to jest wynik działania jakiegoś programu zewnętrznego (tzn to co wyświetla). W bazie danych mam zapisany DOKŁADNIE taki tekst:
Cytat
world

natomiast program, który uruchamiam (napisany w c++) zawiera tylko taką instrukcję:
  1. cout<<"world"<<endl;


Program wywołuję funkcją exec mniej więcej tak:
  1. exec(Config::$Softlimit." -f 0 -t {$task['maxtime']} {$this->Program} < $inputFile", $output, $result);


Zmienna $output jest przekazywana jako 1 parametr, natomiast to co w bazie jako 2. Nie wiem co jeszcze mogę napisać...

Ten post edytował kabanek 4.11.2010, 20:45:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
outsider
post
Post #2





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

Ostrzeżenie: (0%)
-----


funkcja, którą napisałeś, nie może się mylić, widocznie te wartości(na oko wyglądają tak samo) są różne, ostatnie znaki mogą mieć inny kod ASCII, jeśli możesz opuścić sprawdzanie białych znaków, to użyj funkcji trim(albo tą, co podał tehaha).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 12:55