Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] porównywanie stringów
Forum PHP.pl > Forum > Przedszkole
Demoneos
Do porównania dwóch stingów używam funkcji strcmp:
Kod
$plik = file("dane.txt");
  
  for($x=0; $x<count($plik); $x++)
  {
      if( strcmp($plik[$x] , '        <td class="test">Test1</td>') == 0)
       {
             echo "rowne";
       }
  }

Zwraca ona 0 gdy stringi są równe. Zmienna $plik NA PEWNO zawiera jedną linijkę ' <td class="test">Test1</td>', a więc powinno się RAZ na ekranie wyświetlić "rowne". Tymczasem ani razu się nie wyświetla. Co robię źle?
Krakier
Hm ale dowaliłeś tych spacji w skrypcie ^^
Spróbuj tak:

Kod
$plik = file("dane.txt");
  
  for($x=0; $x<count($plik); $x++)
  {
      if( strcmp($plik[$x] , '<td class="test">Test1</td>') == 0)
       {
             echo "rowne";
       }
  }
kaem
Hmmm a na pewno w pliku jest dokładnie taka linijka?
Może znak końca linii coś psuje dry.gif Użyj funkcji trim na $plik[$x] przed ifem, żeby pousuwał zbędne znaki z wiersza (spacje, taby, znak końca linii itp itd).
piotrooo89
mnie ten twój kod chodzi... wszystko sprawdziłem i nie wiem co może być nie tak. może masz złą nazwę pliku do sprawdzenia. ja proponuje Ci skopiować sobie to co porównujesz do pliczku i zobaczyć. w każdym bądź razie kod jest sprawny.

aha tak sobie przypomniałem może nie masz praw do tego pliku?
kaem
A sprawdziłeś na kilku wierszach? ;> U mnie jak jest znak końca linii to nie działa. Jak cofnę kursor na koniec wiersza to jest ok. Dlatego jednak trzeba użyć tej funkcji trim.
  1. <?php
  2. $plik[$x]=trim($plik[$x]);
  3. if( strcmp($plik[$x] , 'Test1') == 0)
  4.  {
  5. ?>
piotrooo89
aż tak się nie zagłębiałem... sprawdziłem tylko to co podał Demoneos. ale dobrze gadasz... trzeba również użyć trim'a.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.