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

发布于 2025-01-11 09:50:58 字数 1450 浏览 0 评论 0原文

我有一个用于管理写入/读取/删除文件的 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/writingFile.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)

I have a php class used to manage write/read/delete files. The constructor receives the path (string) of the file. Basically something like:

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
    }
}

Also I have this directory tree

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

Is very important to say that useCustomFileFunction.php is in charge of writing the files in the tempDir, so that function create a customFile object with a path like this "./tempDir/"+someName (for example "./tempDir/writtenFile.txt).

both function1.php and function2.php call useCustomFileFunction with some file name (to write some files) but when the function is called from function1.php the result is (incorrect):

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

and when is called from function2.php, the result is (correct):

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

So the question is: Is there a way to tell fwrite, that the path begin from the class/that call fwrite? (customFile1.php or useCustomFileFunction.php instead of function1.php and function2.php)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花开雨落又逢春i 2025-01-18 09:50:58

function1.php 应该使用带有 ../tempDir 路径的 customFile 类。使用 __FILE____DIR__ 是更好的方法。 code> 用于寻址。

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

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

我们可以在 config.php 文件中包含此代码:

<?php

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

我们将 config.php 包含在 function1.php

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

: function2.php 中的方式:

require("config/config.php");

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

function1.php should use customFile class with ../tempDir path.It's a better way to use the __FILE__ or __DIR__ for addressing.

So let's struct the project this way:

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

And we can have this code in config.php file:

<?php

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

And we include the config.php in function1.php this way:

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

And this way in function2.php:

require("config/config.php");

Now you can use the TEMP_DIR Constant to address the tempDir folder.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文