str_replace的会话变量php

时间:2011-07-05 15:11:32

标签: php str-replace

我在str_replace行上收到错误。我试图用它的常量替换$ _SESSION变量。我错过了什么?

$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变量的值。它似乎根本没有取代。

2 个答案:

答案 0 :(得分:1)

$resume是一种资源,您不能将其用作str_replace的参数。你应该用fgets读取文件的内容,修改它然后把它写回去工作。

答案 1 :(得分:0)

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

双引号导致php尝试自己读取$_SESSION变量。您正试图替换文件中的那些作品,对吗?