2011-08-22 6 views
0

나는 fwrite를 사용하여 PHP에서 다음 문자열을 쓰길 원하지만 그럴 수는 없다. 쓸 문자열은 $config['xxx']이다. 그것은 오류를 보여준다 아무도 도와 줄 수 있습니까? 여기 php를 사용하여 파일에 큰 따옴표를 씁니다.

나는 다음과 같은 오류

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in D:\xampplite\htdocs\PHP test\filecreate.php on line 6 
+0

어떤 오류 (필자는 하나 또는 다른 상상할 수 있지만, 당신은해야 질문에 추가하십시오)? 그리고 텍스트를 그대로 또는 변수의 내용으로 작성 하시겠습니까? – hakre

+0

설명서의 이스케이프 규칙을 참조하십시오. http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double - 예와 관련된 실제 문제는 파서는 큰 따옴표 안에 유효한 PHP3 스타일의 배열 구문'print "$ config [xxx]"; "를 기대하고있었습니다.- 또한 스 니펫의 실제 목적은 무엇입니까? – mario

답변

3

 

    $stringData = '"'.$config['c'].'"'; 
    fwrite($fh, $stringData); 

2
$stringData = "{$config['xxx']}"; //<<-- wrap with {...} 
fwrite($fh, $stringData); 

O하려고 한 내 코드

$stringData = "$config['xxx']"; 
fwrite($fh, $stringData); 

입니다 R은 : 당신이 실제로 파일에 $config['xxx']을 작성하려는 경우

$stringData = $config['xxx']; 
fwrite($fh, $stringData); 
은 또는, 당신은 탈출을 할

있습니다

$stringData = "\$config['xxx']"; 
fwrite($fh, $stringData); 
+0

''{$ config [ 'xxx']} "''$ config [ 'xxx']'와 어떻게 다른가요? – Tomalak

+2

@Tomalak - 그건 아닙니다 :-), 내 대답 – Neal

+0

오른쪽의 두 번째 부분을 참조하십시오. :) * OP가 문자 "$ config [ 'xxx']"'를 파일에 쓰려고합니다. 그래도 틀릴 수도 있습니다. – Tomalak

2

문제는 문자열의 내용이되고있는 것입니다 해석. 이 같은 슬래시와 '$'를 탈출해야합니다

$stringData = "\$config['c']"; 
fwrite($fh, $stringData); 
+0

+1 내 의심이 큽니다. 대안 : 변수 확장을 막기 위해 작은 따옴표를 사용하십시오 :'$ stringData = '$ config [\'xxx \ ']'; ' – Tomalak

+0

예. –

+0

감사합니다. – Ramamoorthy

2

가 PHP가 큰 따옴표로 $___ 형식을 구문 분석을 시도합니다 기억하십시오. 예 :

$foo = 'bar'; 
echo "$foo"; // outputs bar because it parses the variable 

것을 방지하기 위해, 당신은 문자열 내에서 \$를 사용하여 $을 피할 수 있습니다. 예 : 이 파일에 표시하는 문자 텍스트$config['xxx']를 원하는 경우, 말을하는 것입니다

$stringData = "\$config['xxx']"; 

. 당신이 파일의 $config['xxx']을 원하는 경우에, 당신은 괄호를 사용하거나 그냥 그런 변수에 할당 할 수 있습니다

// just the variable 
$stringData = $config['xxx']; 

// with braces so the interpreter can parse it correctly 
$stringData = "{$config['xxx']}"; 
0

이 ... 이중 qoutes 어떤이 있는지 확인하기 위해 PHP에게 하나의 qoutes를 사용하여 시도를 변수가 포함되어 있습니다. 따라서 문자열이 있으면 항상 작은 따옴표를 사용해야합니다. 변수가있는 경우에도 변수가 문자열에서 꺼내기 위해 필요하기 때문에 다음과 같아야합니다. $ bla = '일부 변수가 있습니다. $ 변수.' 이리';.

그래서 귀하의 경우 다음을 시도하십시오. $ stringData = '$ config [\'xxx \ ']';

0

는 출력 " 년대와 포장 $의 설정의 값 [ 'XXX'를]이 필요한 경우,이 구문은 유용합니다 :

$stringData = "\"{$config['xxx']}\""; 
관련 문제