Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
str_替换会话变量php_Php_Str Replace - Fatal编程技术网

str_替换会话变量php

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']; $

我在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'];
$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”