2011-07-05 155 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讀取文件的內容,修改它,然後寫回工作。

+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」 –