php从两个不同的位置写入文件路径



我有一个php类用于管理写/读/删除文件。构造函数接收文件的路径(字符串(。基本上类似于:

class customFile{
public function __construct($path){
$this->path=$path;
}
public function write($content){
//use fopen and fwrite to write content
}
public function read(){
//use fopen and fgets to read content
}
public function delete(){
//use unlink to delete the file
}
}

我还有这个目录树

├─ root/
│  ├─ helpers/
│  │  ├─ customFile.php
│  ├─ dir1/
│  │  ├─ function1.php
│  ├─ tempDir/
│  ├─ function2.php
│  ├─ useCustomFileFunction.php

非常重要的一点是,useCustomFileFunction.php负责在tempDir中写入文件,这样函数就可以创建一个路径如下的customFile对象"tempDir/"+someName(例如"./tempDir/writentFile.txt"(.

function1.php和function2.php都使用某个文件名调用useCustomFileFunction(写入一些文件(,但当从function1.php调用函数时,结果是(不正确(:

├─ root/
│  ├─ helpers/
│  │  ├─ customFile.php
│  ├─ dir1/
│  │  ├─ function1.php
│  │  ├─ tempDir/
│  │  │  ├─ writtenFile.txt
│  ├─ tempDir/
│  ├─ function2.php
│  ├─ useCustomFileFunction.php

当从function2.php调用时,结果是(正确的(:

├─ root/
│  ├─ helpers/
│  │  ├─ customFile.php
│  ├─ dir1/
│  │  ├─ function1.php
│  ├─ tempDir/
│  │  ├─ writtenFile.txt
│  ├─ function2.php
│  ├─ useCustomFileFunction.php

所以问题是:有没有办法告诉fwrite,路径从调用fwrite的类开始?(customFile1.php或使用CustomFileFunction.php而不是function1.php和function2.php(

function1.php应使用带有../tempDir路径的customFile类。使用__FILE____DIR__进行寻址是一种更好的方式。

因此,让我们这样构建项目:

├─ root/
│  ├─ config/
│  │  ├─ config.php
│  ├─ helpers/
│  │  ├─ customFile.php
│  ├─ dir1/
│  │  ├─ function1.php
│  ├─ tempDir/
│  ├─ function2.php
│  ├─ useCustomFileFunction.php

我们可以在config.php文件中有这个代码:

<?php
define("TEMP_DIR" , dirname(__DIR__) . "/tempDir/");

我们在function1.php中以这种方式包含config.php:

require(__DIR__ . "/../config/config.php");

function2.php:中

require("config/config.php");

现在,您可以使用TEMP_DIR常量来寻址tempDir文件夹。

相关内容

  • 没有找到相关文章

最新更新