gpt4 book ai didi

php - 选择要编辑的文件

转载 作者:行者123 更新时间:2023-12-04 04:56:42 25 4
gpt4 key购买 nike

我有一个用于编辑 .txt 文件的应用程序。应用程序由 3 部分组成

  • 显示包含要编辑的文件的文件夹的内容(每个文件是一个链接,单击它会在编辑模式下打开)。
  • 写入文件。
  • 保存到文件。

  • 第 2 部分和第 3 部分我已经使用 fopen 和 fwrite 函数完成了,这并不难。我需要帮助的部分是目前我通过在具有显示功能和保存功能的 php 文件中输入其位置和文件名来打开文件的第一部分:
    $relPath = 'file_to_edit.txt';
    $fileHandle = fopen($relPath, 'r') or die("Failed to open file $relPath ! ");

    但我想要的是文件在单击时以编辑模式打开,而不是每次都输入文件名。
    $directory = 'folder_name';

    if ($handle = opendir($directory. '/')){
    echo 'Lookong inside \''.$directory.'\'<br><br>';

    while ($file = readdir($handle)) {
    if($file !='.' && $file!='..'){
    echo '<a href="'.$directory.'/'.$file.'">'.$file.'<a><br>';

    }

    }

    }

    这是 ti 用来显示指定文件夹中文件列表的代码。
    任何人都可以给我一些指示我如何实现这一目标?任何帮助将不胜感激。

    最佳答案

  • 要获取文件内容,请使用 file_get_contents();
  • 要放置文件的内容,请使用 file_put_contents();与 FILE_APPEND 编辑标志。
  • 要接收目录中的文件列表,您可以使用 DirectoryIterator

  • 示例:
    foreach (new DirectoryIterator('PATH/') as $fileInfo) {
    if($fileInfo->isDot()) continue;
    echo $fileInfo->getFilename() . "<br>\n";
    }

    如果您不想放置文件名,您可以将读取的文件放入 db 中,为它们分配 id 并使用带有 id 参数的链接。另一种解决方案是将文件存储在 session 数组中并为它们分配 key 。当您想要获取文件时,您只需要提供 key 而不是整个文件名和路径。

    示例与 $_SESSION
    $file_arr = array();
    foreach (new DirectoryIterator('PATH/') as $fileInfo) {
    if($fileInfo->isDot()) continue;
    $file_arr[] = array("path" => $fileInfo->getPathname(), 'name' => $fileInfo->getFilename());
    }
    $_SESSION['files'] = $file_arr;

    然后在 查看 你可以使用
    foreach($_SESSION['files'] as $k=>$file)
    {
    echo "<a href='edit.php?f=".$k."'>'.$file['name'].'</a>";
    }

    edit.php
    $file = (int)$_GET['f'];

    if(array_key_exits($file, $_SESSION['files'])
    {
    $fileInfo = $_SESSION[$file'];

    //in file info you have now $fileInfo['path'] $fileInfo['name']
    }

    关于php - 选择要编辑的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16663767/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com