php - PHP 中的 strpos 函数问题找不到针

标签 php string

在 php 中,我打开了一个 .php 文件并想评估某些行。特别是当 $table_id 和 $line 变量被赋值时。

在我的文本文件中:

...  
$table_id = 'crs_class';                      // table name
$screen   = 'crs_class.detail.screen.inc';    // file identifying screen structure
...

除其他外。下面的 if 语句永远不会检测到 $table_id$screen 的出现(即使没有 $ 前缀)。我不明白为什么它不起作用,因为下面查找“require”的 strpos 语句工作正常。

那么,为什么这个 if 语句没有成功呢?

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;
    }
}

最佳答案

使用 !==false 而不是 ===true
如果找到针,stripos 会以整数形式返回位置。那永远不会=== bool。
您可能还对 PHP 的 tokenizer module 感兴趣或 lexer package在 pear 存储库中。

关于php - PHP 中的 strpos 函数问题找不到针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/83397/

相关文章:

php - 如何过滤属于特定类别的帖子 [产品]

php - 从 SQL 数组中添加字符串长度

php - 使用 PHP 根据服务器流量重定向用户

php - 在不同语言的文件中搜索字符串 - PHP - UTF-8

python - 带单引号且不带转义字符的 JSON 对象

PHP在带有花括号的字符串中嵌入数组元素

javascript - javascript 中的字符串搜索无法找到当前字符串

python - 如何在Python中减去2个字符串或列表?

c++ - 使 C++ std::string 在指定字符处结束?

java - 无法将 ascii 121 打印到字符 y,而是打印特殊字符