2011-07-05 7 views
0

str_replace 줄에 오류가 발생합니다. $ _SESSION 변수를 상수로 대체하려고합니다. 나는 무엇을 놓치고 있습니까?str_replace 세션 변수 PHP

$resume = fopen('creative/'.$_SESSION['user'].'/resume.php', 'r') or die('error when opening the file'); 
$fp = fopen('creative/'.$_SESSION['user'].'/resume2.php', 'w'); 
$creative = $_SESSION['creative']; 
$user = $_SESSION['user']; 
if ($resume){ 
while (($buffer = fgets($resume, 4096)) !== false) { 
    str_replace("\$_SESSION[creative]", $creative, $buffer); 
    str_replace("\$_SESSION[user]", $user, $buffer); 
    fwrite($fp, $buffer); 
    echo $buffer; 
} 
if (!feof($resume)) { 
    echo "Error: unexpected fgets() fail\n"; 
} 
fclose($resume); 
fclose($fp); 
} 

$ _SESSION 변수를 상수로 바꿀 수 없습니다. $ _SESSION 변수의 값을 대체에 반환하지 않습니다. 그것은 전혀 대체하지 않는 것 같습니다.

+1

오류가 무엇인지 저희에게 알려주십시오. –

답변

1

$resume은 자원이므로 str_replace의 매개 변수로 사용할 수 없습니다. 당신은 fgets로 파일의 내용을 읽고 modfy로 작성한 다음 작업에 다시 써야합니다.

+0

계속 오류가 발생합니다. –

+0

이 코드를 사용하여 게시물을 편집하면 –

0
str_replace('\$_SESSION['creative']', $creative, $buffer); 
str_replace('\$_SESSION['user']', $user, $buffer); 

큰 따옴표로 인해 PHP는 $_SESSION 변수 자체를 읽으려고 시도합니다. 파일에서 해당 작품을 대체하려고합니다. 맞습니까?

+0

예, 올바른 답변을 드릴 수 있습니다. @ $ _ SESSION [creative] 및 @ $ _ SESSION [user]로 파일을 대체하고 str_replace ('\ @ $ _ SESSION [creative]', $ creative, $ buffer)를 수행합니다. str_replace ('\ @ $ _ SESSION [user]', $ user, $ buffer); 오류는 반환하지 않지만 바뀌지는 않습니다. –

+0

@을 왜 추가하나요? 이 오류를 피하려면 – Drazisil

+0

알림 : 정의되지 않은 상수 크리에이티브 사용 - 31 행의 printableresume.php에서 'creative'로 가정 –