In PHP habe ich eine .php Datei öffnen und bestimmte Zeilen auswerten wollen. Insbesondere wenn den Variablen $ table_id und $ line ein Wert zugewiesen wird.strpos Funktionsproblem in PHP die Nadel nicht finden
Innerhalb der Textdatei Ich habe:
...
$table_id = 'crs_class'; // table name
$screen = 'crs_class.detail.screen.inc'; // file identifying screen structure
...
unter anderen Linien. Die if-Anweisung unten erkennt niemals das Auftreten von $table_id
oder $screen
(auch ohne das $ vorangestellt). Ich kann nicht verstehen, warum es nicht funktionieren wird, da die strpos-Anweisung unten nach 'require' gut funktioniert.
Also, warum ist das nicht, wenn Aussage einen Treffer bekommt?
while ($line=fgets($fh)) {
//echo "Evaluating... $line <br>";
**if ((($pos = stripos($line, '$table_id')) === true) || (($pos = stripos($line, '$screen'))===true))**
{
// TODO: Not evaluating tableid and screen lines correctly fix.
// Set $table_id and $screen variables from task scripts
eval($line);
}
if (($pos=stripos($line, 'require')) === true) {
$controller = $line;
}
}
Ich fehlinterpretierte die Dokumentation auf php.net. Beachten Sie Folgendes: Diese Funktion kann Boolean FALSE zurückgeben, kann aber auch einen nicht-booleschen Wert zurückgeben, der FALSE ergibt, z. B. 0 oder "". Verwenden Sie den Operator ===, um den Rückgabewert dieser Funktion zu testen. Bedeutet es auf FALSCH eval kann aber nicht TRUE –