Zeilen vergleichen

ihrschweine

Mitglied
Hallo, was mache ich denn bitte falsch?

Die Text Datei sieht so aus:

TXT
Deaktiviert
Aktiviert
Aktiviert

Und der Code so
Code:
$file = fopen("benutzer/". $benutzer, "r"); 
while(!feof($file)) { 
    $content[] = fgets($file, 100000); 
} 
fclose($file); 

$zero = 'Deaktiviert';

if ($content[0] === $zero)
{
echo 'ja';
}
else
{
echo 'nein';
}

So, nun bekomme ich aber IMMER "nein" ausgegeben, egal ob sich das Wort in der ersten Zeile ändert oder nicht.
 
Mit '===' machst du einen typensicheren Vergleich.

Gib doch mal testweise mit [phpf]var_dump[/phpf] aus, ob es sich bei beiden um den gleichen Typ handelt.

Ansonsten versuche den Vergleich mit '=='.
 
Ausgegeben wird :

string(10) bei $zero
string(11) bei $content[0]

Hm? XD

'==' geht leider auch nicht, bzw gibt mir noch immer nur "nein" aus.
 
Wie du siehst, hat $content[0] ja auch ein Zeichen mehr als $zero.

Probier es mal so:

PHP:
var_dump($zero);
var_dump(trim($content[0]));
Vermutlich ist am Ende von $content[0] noch ein Zeilenumbruch o. ä. drangehängt.
 
Code:
$test = var_dump($zero); 
$test2 = var_dump(trim($content[0])); 

echo $test1;
echo $test2;

Ausgabe bei test1 : string(11)
Ausgabe bei test2 : string(9)

Der Code sieht jetzt so aus, aber der gibt noch immer nur "nein" aus?

Code:
$file = fopen("benutzer/". $benutzer, "r"); 
while(!feof($file)) { 
    $content[] = fgets($file, 100000); 
} 
fclose($file); 

$zero = 'Deaktiviert';

if ($content[0] == $zero)
{
echo 'ja';
}
else
{
echo 'nein';
}
 
Zuletzt bearbeitet:
PHP:
$test = var_dump($zero); 
$test2 = var_dump(trim($content[0])); 

echo $test1;
echo $test2;

Dir ist schon klar, dass du da oben $test schreibst und nicht $test1 ?

Also, bei mir funktioniert es.

test.txt hat gesagt.:
Deaktiviert
Sonstige infos
Nichtsinteressantes

PHP:
<?php

$content = file('test.txt');
$zero = 'Deaktiviert';

if($content[0] == $zero)
{
  echo 'true';
}
else
{
  echo 'false';
}

# ergibt false

if(trim($content[0]) == $zero)
{
  echo 'true';
}
else
{
  echo 'false';
}

# ergibt true
?>
 
Zurück