【问题标题】:Why does this code cause a parse error?为什么这段代码会导致解析错误?
【发布时间】:2012-08-10 20:19:40
【问题描述】:

错误信息:

解析错误:语法错误,C:\xampp\htdocs\index.php 中出现意外的“{” 在第 135 行

代码:

if(isset($_REQUEST['d'])
{ // LINE 135 IS THIS ONE
    $d = $_REQUEST['d'];

    if ($d) {
        while (preg_match('/\\\/',$d)) $d = preg_replace('/\\\/','/',$d);
        while (preg_match('/\/\//',$d)) $d = preg_replace('/\/\//','/',$d);
        while (preg_match('/\.\.\//',$d)) $d = preg_replace('/\.\.\//','/',$d);
        if ($d[strlen($d)-1] != '/') $d = $d.'/';
        if ($d == '/') $d = '';
    }
}

【问题讨论】:

  • ...on line 135 通常是任何错误消息中最有用的部分。
  • 是的,我知道,但我确实在代码中添加了行号。

标签: php syntax-error


【解决方案1】:

您缺少右括号:

if ( isset($_REQUEST['d'] ) )

【讨论】:

  • 谢谢。我错过了)。整天看太多 PHP 代码会导致这种情况
【解决方案2】:

Yan 得到了主要答案,但您在第一个正则表达式中也缺少反斜杠:

    while (preg_match('/\\\/',$d)) $d = preg_replace('/\\\/','/',$d);
                          ^                              ^

前两个反斜杠在模式中插入文字反斜杠,而第三个反斜杠实际上是在末尾转义模式分隔符,导致模式未终止。

【讨论】:

  • 感谢您指出这一点!这个 osFileManager 项目似乎有很多错误,需要修复的问题!
猜你喜欢
  • 2011-03-16
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
相关资源
最近更新 更多