【问题标题】:PHP file path from Command Line different命令行中的PHP文件路径不同
【发布时间】:2018-11-02 04:27:03
【问题描述】:

如果我通过浏览器运行这个简单的代码,它会正常工作并在与脚本相同的位置创建“text.txt”。

 <?php

    $op = fopen('text.txt', 'w');

    fwrite($op, 'test');

    fclose($op)

    ?>

但是如果我用命令行运行

php script.php

它在一个完全不同的目录中创建文件。

为什么同一个脚本在运行浏览器和命令行时会有不同的表现?!

要解决这个问题,我需要输入完整路径:fopen('/home/user/site.com/subfolder/text.txt', 'w');

我有一个包含许多行和许多文件路径的脚本,要全部更改会很费力。如何在不将完整路径放入文件中的情况下解决此问题。

【问题讨论】:

  • 你从哪里运行命令?该文件是在您运行命令的目录中创建的吗?
  • 当您通过浏览器运行代码时,它会在 Web 服务器 apache or others 上运行,当您从 shell 运行代码时,它会由 php interpreter 运行,请阅读:php.net/manual/en/function.fopen.php
  • 我直接从shell运行
  • @SalimIbrogimov 是否可以进行一些全局配置。让他们以同样的方式工作?
  • 它应该在您用来运行命令的同一目录中工作。检查你的环境。在脚本中尝试 getcwd()

标签: php shell command-line command-line-interface


【解决方案1】:

打开终端并输入:

cd /home/user/site.com/subfolder

然后运行:

php script.php

【讨论】:

    【解决方案2】:

    start_script.sh

    #!/bin/bash
    cd /to/location/of/script
    php script.php
    

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 2012-04-07
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      相关资源
      最近更新 更多