0

エラーメッセージ:

解析エラー: 構文エラー、135 行目の C:\xampp\htdocs\index.php の予期しない '{'

コード:

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 = '';
    }
}
4

2 に答える 2

10

閉じ括弧がありません:

if ( isset($_REQUEST['d'] ) )
于 2012-08-10T20:20:25.770 に答える
4

ヤンは主な答えを得ましたが、最初の正規表現にはバックスラッシュもありません:

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

最初の 2 つはリテラルのバックスラッシュをパターンに挿入しますが、3 番目のバックスラッシュは実際には末尾のパターン区切り文字をエスケープしており、パターンが終了していません。

于 2012-08-10T20:28:26.433 に答える