繁体   English   中英

PHP覆盖文件问题

[英]PHP overwriting file issues

覆盖文件时出现问题。 我尝试了所有方法,但有时 (可能只是时间问题)似乎没有任何效果。 这是代码:

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),但通常会失败并且没有任何变化。 我怎样才能解决这个问题?

确保您具有写权限和正确的用户设置才能更改文件内容。 您可以在Linux系统中使用chown和chmod来实现。 不知道这是否是Windows盒上的问题。

参见http://php.net/manual/en/function.chmod.phphttp://www.php.net/manual/en/function.chown.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM