覆盖文件时遇到问题。我试过everthing但是 SOMETIMES (可能只是时间问题)nothings似乎工作正常。这是代码:
include_once "changevar.php";
changevar("O",$seguimedia,$filename,0);
changevar("o",$offerta,$filename,0);
$ seguimedia,$ filename和$ offerta已正确设置。
changevar.php:
function changevar($varname,$newval,$filename,$type)
{
while(!$fp=fopen($filename,"c+"))
{
usleep(100000);
}
while(!flock($fp,LOCK_EX))
{
usleep(100000);
}
while(!include($filename))
{
usleep(100000);
}
ftruncate($fp,0);
rewind($fp);
$$varname=$newval;
if($type==0)
{
foreach(array("u","p","t","d") as $v){$$v=str_replace("\\","\\\\",$$v);}
$text="<?\$o=$o;\$u=\"$u\";\$c=$c;\$m=$m;\$p=\"$p\";\$C=$C;\$id=\"$id\";\$t=\"$t\";\$d=\"$d\";\$O=$O;?>";
}
else
{
$text="<?\$impressions=$impressions;\$clickunici=$clickunici;\$clicknulli=$clicknulli;\$creditiguadagnati=$creditiguadagnati;\$creditiacquistati=$creditiacquistati;\$creditiutilizzati=$creditiutilizzati;?>";
}
fwrite($fp,$text);
flock($fp,LOCK_UN);
fclose($fp);
}
在这种情况下,函数changevar()必须在文件$ filename中更改两个变量($ o和$ O),但通常它会失败并且没有任何变化。我该如何解决这个问题?
答案 0 :(得分:0)
确保您具有写入权限和正确的用户设置以更改文件内容。你可以在linux系统中使用chown和chmod来做到这一点。不确定它是否在Windows机箱上出现问题。
请参阅http://php.net/manual/en/function.chmod.php和http://www.php.net/manual/en/function.chown.php