2011-07-05 9 views
0

str_replace行にエラーが発生しました。私は$ _SESSION変数を定数で置き換えようとしています。私は何が欠けていますか?str_replace of session variables 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); 

二重引用符は、試してみて、$_SESSION変数自体を読み取るためにPHPを引き起こしています。ファイル内のそれらの作品を置き換えようとしていますが、正しいですか?

+0

はい、それは正しいです。ファイルを@ $ _ SESSION [creative]と@ $ _ SESSION [user]に置き換え、str_replace( '\ @ $ _ SESSION [creative]'、$ creative、$ buffer)を実行します。 str_replace( '\ @ $ _SESSION [ユーザー]'、$ユーザー、$バッファ);エラーは返されませんが、置き換えられません。 –

+0

なぜ@を追加していますか? – Drazisil

+0

このエラーを回避するには:注意:未定義定数クリエイティブの使用 - 31行目のprintableresume.phpで 'creative' –