我在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变量的值。它似乎根本没有取代。
答案 0 :(得分:1)
$resume
是一种资源,您不能将其用作str_replace
的参数。你应该用fgets读取文件的内容,修改它然后把它写回去工作。
答案 1 :(得分:0)
str_replace('\$_SESSION['creative']', $creative, $buffer);
str_replace('\$_SESSION['user']', $user, $buffer);
双引号导致php尝试自己读取$_SESSION
变量。您正试图替换文件中的那些作品,对吗?