未找到包含子域和php';的文件;s system()函数


File not found with subdomain and php's system() function

在php脚本中,我想检查某些文件类型,我喜欢这样做:

$info=爆炸('/',system("file-bi-uploads/img/test.gif");

if($info[0])echo"ok";

只要url没有子域,f.e domain.com,但在en.domain.com下不起作用,这就可以正常工作。看起来,文件就是找不到。

另一方面,如果在同一个脚本中,我检查文件是否存在:

if(file_exists("uploads/img/test.gif"))echo"存在";

文件已找到,无论当前url是domain.com还是en.domain.com。如果使用system()函数,为什么找不到文件?

已解决

朋友们,经过近三个工作日,我终于找到了解决方案。也许你可以想象我有多放心。

解决方案是在php选项中激活mod_rewrite。这一切都已在常规域中激活,但不适用于子域。我想我早就想好了。尽管你的回答并没有让我知道如何解决这个问题,但我仍然感谢你的投入,因为它正朝着我过去几天试图自己解决的方向发展。

shell命令不一定会让你的文件根目录与php命令相同(我认为一个是用户的根目录,另一个是Web服务器),在shell命令中使用绝对路径,这可能会按照你想要的方式工作。

您可以通过使用pwd(例如)使用file命令来确定这两个url的位置

echo system('pwd');

或者你可以使用finfoopen而不是shell命令,这样可以避免这个问题。