2011-02-15 5 views
1

은 여러 검색을 수행하고 선택은 검색 할 문자열 10메가바이트 이상이기 때문에 나오지 다음 문자열실행 여러 PHP에서 나오지 : 나는 시도하고 탈출 문제

$test = "sed -n '1h;1!H;${;g;s/iname=\"".$name.".*item>/".trim(xml)."/g;p;}' ".$file; 
exec($test,$cmdresult); 

로 대체 할 sed를 실행합니다. 실행 컴파일러 동안

PHP Parse error: syntax error, unexpected ';' 

가 어떻게이 문제를 해결 가야합니까 경고를?

+0

당신은'<<< HEREDOC "구문이 사람이 읽을 수있는 것으로 끝날 수도 있습니다. http://ca.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc – dnagirl

답변

3

$${}으로 탈출해야합니다.

인간이 코드를 읽을 수 있도록하려면 문자열을 실제로 분할해야합니다. 다른 문자열 인 sprintf 또는 HEREDOC을 연결하여 만듭니다.

+0

+1은 내 대답보다 완벽합니다. –

0

아마도 $ 변수 안에있는 $test 변수는 PHP가 확장되어야하는 또 다른 변수라고 생각합니다.

$ 문자 (\$)를 이스케이프 처리하고 relevant PHP strings doc을보십시오.