str_替换会话变量php
我在str_replace行上遇到一个错误。我试图用它的常量替换$会话变量。我错过了什么str_替换会话变量php,php,str-replace,Php,Str Replace,我在str_replace行上遇到一个错误。我试图用它的常量替换$会话变量。我错过了什么 $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']; $
$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);
}
我无法用常量替换$\u会话变量。它不会在替换中返回$\会话变量的值。它似乎根本无法取代
$resume
是一个资源,不能将其用作str\u replace
的参数。您应该使用fgets读取文件内容,对其进行修改,然后将其写回工作
str_replace('\$_SESSION['creative']', $creative, $buffer);
str_replace('\$_SESSION['user']', $user, $buffer);
双引号导致php尝试读取
$\u会话
变量本身。您正在尝试替换文件中的作品,对吗?请告诉我们错误是什么?是的,没错。在文件中替换为@$\u SESSION[creative]和@$\u SESSION[user],并执行str\u替换(“\@$\u SESSION[creative]”,$creative,$buffer);str_replace(“\@$\u会话[user]”,$user,$buffer);不返回错误,但不替换。要避免此错误,请注意:在第31行的printableresume.php中使用未定义的常量creative-假定为“creative”