2012-02-04 7 views
-1

私はプログラムを書いていて、文字列の中にいくつかのコードがあります。このコードは文字列の外側でエラーが発生しませんが、文字列の中に置くとこのエラーが発生します。PHP文字列エラー

解析エラー:構文エラー、予期しないT_ENCAPSED_AND_WHITESPACE、期待T_STRINGまたはT_VARIABLEまたは事前に

$string = "if(isset($_POST['Submit']))"; 

おかげで* ディレクトリおよび行番号 *

エラーが発生でT_NUM_STRING。

+0

なぜdownvotingですか?私にはかなり正当な質問と思われます... – Palantir

+0

実際にあなたのコードで何をしたいのですか? – enam

答えて

2

使用単一引用符ではなく二重引用符は:

$string = 'if(isset($_POST[\'Submit\']))'; 

この方法では、PHPは、その中に$ _POST変数を補間しようとしません。それ以外の場合は、$文字をエスケープします。

+0

また、文字列内の引用符をエスケープする必要があります。 –

+0

確かに、すでに編集中:) – Palantir

2

あなたは$をエスケープする必要があります。

$string = "if(isset(\$_POST['Submit']))"; 
0

[ロイド@デスクトップ〜] $ phpの-a インタラクティブシェル

PHP> $文字列=「場合(ISSET($ _ POST [ '送信' ]))); PHP解析エラー:構文エラー、予期しないT_ENCAPSED_AND_WHITESPACE、ライン1

PHP> = "であれば(ISSET(\ $ _ POST [ '送信']))" $文字列にPHPのシェルコードにT_STRINGまたはT_VARIABLEまたはT_NUM_STRINGを期待。

php> $ string = "if(isset({$$ POST ['Submit']}))";

PHPのお知らせ:未定義のインデックス:ライン上でPHPのシェルコードに提出する1 PHPスタックトレース: PHP 1. {メイン}()PHPのシェルコード:0

PHP>

あなたがする必要がありますPHPが文字列を二重引用符で囲んでいるので、$をエスケープします。 PHPが解釈しようとしていない文字列が必要な場合は、一重引用符を使用してください。