2012-02-23 32 views
2

我试图重命名目录:重命名目录 - 创建一个新的(空)上

rename("billeder/123", "billeder/abc"); 

此后不久我修改一个文件的目录中的内容:

$s = file_get_contents("billeder/abc/fil.txt"); // note: using the new directory name (abc)! 
$s = str_replace("123", "abc", $s); 
file_put_contents("billeder/abc/fil.txt", $s); 

结果很奇怪:文件内容被修改,OK!
- 但它仍然位于旧目录(123),并创建一个新的空目录(abc)?!?!

PS:

  • 目录is_writable()
  • 我是一个Linux服务器(Ubuntu的,什么都在涨,最新)
  • 我一直在使用的完整路径尝试在rename()中 - 没有区别。
  • 我试过在名称的末尾添加一个/没有区别。
  • 我已经尝试修改文件,重命名目录之前,仍然没有区别。

让人绝望..谁能弄清楚发生了什么事?

+0

这可能与处理文件时PHP的内部缓存有关。尝试http://tw.php.net/manual/en/function.clearstatcache.php – Basti 2012-02-23 12:33:56

回答

1

Shucks - 我的错(再次) - 它按预期工作。

原因(如是否有人问津):(重新)提取的zip文件(太多)的内容。它很复杂..
- 和误读ABC/123 - 它们实际上是16位号码,那看起来像:)
我欠大家一杯啤酒!

+0

我关心:)你修好它的好东西 – 2012-02-23 13:30:59

+1

我给你一个加1因为我笑你最后一句话,不是因为这帮助我:) – 2013-09-02 15:20:31

0

尝试从名称中删除“*”。

+0

那些不是我的 - 直到Helge Helwig正试图澄清我的问题,我认为..? – T4NK3R 2012-02-23 12:44:12

+0

所以在你的代码中你实际上并没有那些***? – 2012-02-23 12:52:12

+0

不是:只是双方/ 123和双方/美国广播公司 – T4NK3R 2012-02-23 13:21:47