Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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
Javascript fwrite php,文件是否未真正保存?_Javascript_Php_Fwrite - Fatal编程技术网

Javascript fwrite php,文件是否未真正保存?

Javascript fwrite php,文件是否未真正保存?,javascript,php,fwrite,Javascript,Php,Fwrite,我的网页中有一个javascript文件。它只包含一个变量: var tab = [ "img1.jpg" , "img2.jpg" , .......... , "img100.jpg" ] 选项卡中的“img_i_.jpg”来自我的数据库 我已经编写了一个php代码来更新这个文件 ... $res = mysql_query($sql) or die(mysql_error()); $scrip

我的网页中有一个javascript文件。它只包含一个变量:

var tab = [ "img1.jpg" ,
            "img2.jpg" ,
            .......... ,
            "img100.jpg"
          ]
选项卡
中的“img_i_.jpg”来自我的数据库

我已经编写了一个php代码来更新这个文件

...

$res = mysql_query($sql) or die(mysql_error());

$script="var tab= [\n";

while($r = mysql_fetch_assoc($res) )
    $script .= "\t\"" . $r['name']"\",\n";

$script = $script."];\n";

$fileName = fopen("js/tab.js", "w");
fwrite($fileName, $script);
fclose($fileName);

...
当我签出我的js文件时,所有内容都正确写入,但当我重新加载页面时,没有任何更改

奇怪的是,当我手动编辑js文件,然后保存它时,我的网页在重新加载后会发生变化


为什么??如何解决呢?谢谢

您可能正在其他位置写入文件。检查运行php页面的当前目录,并尝试指定fopen的绝对路径,而不是相对路径

dirname(realpath(_文件__))
将返回存储当前php文件的文件夹的路径,因此您可以通过该文件夹生成绝对路径

编辑:我还建议对fopen进行一些错误检查,以便知道文件是否真的打开了


额外的


您应该将您的
mysql\u*
调用至少更改为
mysqli\u*
或。原始的mysql扩展很旧,不支持预处理语句,已被弃用(即将删除)。

您的浏览器可能正在缓存js文件,但当我手动编辑它时,为什么不缓存它?浏览器有时会使用缓存做奇怪的事。通过在js include的末尾添加一个随机字符串(这将删除任何缓存)来测试这一点-例如,
不要像这样生成js代码。您应该将这些文件名放入一个数组,然后
json\u encoding()?不,因为当我签出更新的文件时,所有内容都正确写入。在这种情况下,这是一个缓存问题。浏览器有不同的策略。通常情况下,如果缓存的文件太旧或者您直接请求它,那么它会被重新加载,但不是这样。我会检查一下out@scrowler注释将有助于解决缓存问题。