In php I have open a .php file and want to evaluate certain lines. Specifically when the $table_id and $line variables are assigned a value.
Within the text file I have:
... $table_id = 'crs_class'; // table name $screen = 'crs_class.detail.screen.inc'; // file identifying screen structure ...
amongst other lines. The if statement below never detects the occurance of $table_id or $screen (even without the $ prepended). I can’t understand why it won’t work as the strpos statement below looking for ‘require’ works fine.
So, why isn’t this if statement getting a hit?
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; } }
use !==false instead of ===true
stripos returns the position as an integer if the needle is found. And that’s never ===bool.
You might also be interested in PHP’s tokenizer module or the lexer package in the pear repository.