【问题标题】:Use PHP to delete lines from a .txt file based on time 2使用 PHP 根据时间 2 从 .txt 文件中删除行
【发布时间】:2012-08-25 13:19:47
【问题描述】:

好的,我之前对此有疑问。

我发现了如何使用基于unix时间的php删除txt文件中的行

这是我当前的代码。

<?php
$output = array();
$lines = file('file.txt');
$now = time();

foreach ($lines as $line) {
  list($content, $time) = explode("|", $line);
  if ($time > $now) {
 $output[] = $line;
 }
 }
 $outstring = implode($output);
file_put_contents("file.txt", $outstring);
print time();
?>

该代码的作用是文件中的每个条目在 Unix 中都会有一个时间

所以

它是这样设置的

Content | Unix Time
Content | Unix Time

我想要做的是有一个 PHRASE 或 WORD 代替 unix 时间,这表明该行需要留在那里。

是否有 sn-p 或者这很难吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: php unix time code-snippets


    【解决方案1】:

    添加

    $keepStr = "KEEP";
    

    在顶部并将 foreach 循环替换为:

    foreach ($lines as $line) {
        list($content, $value) = explode("|", $line);
        if ($value == $keepStr || $value > time() ) {
           $output[] = $line;
        }
    }
    

    会转换

    Content1 | KEEP
    Content2 | Somevalue
    Content3 | Someothervalue
    Content4 | KEEP
    

    Content1 | KEEP
    Content4 | KEEP
    

    您可以通过更改$keepStr的值来定义要保留的字符串

    【讨论】:

    • 我希望有一个词组能与那个词保持一致。但如果 Unix 时间已过,仍会删除其他的
    【解决方案2】:

    看看我之前在您的帖子中发布的内容(供参考)。您可以通过更改if 语句中的条件轻松做到这一点。 (其他解决方案也是如此,看看我在if 语句中所做的更改)。

    使用我之前发布的代码并进行一些修改:

    <?php
    $whiteword = "keep";
    $filtered = array();
    if($handle = fopen("file.txt", "r")){
        while($data = fgetcsv($handle, 0, "|")){
            if($data[1] === $whiteword || $data[1] > time()){
                $filtered[] = $data;
            }
        }
        fclose($handle);
    }
    if($handle = fopen("file.txt", "w")){
        for($i = 0; $i < count($filtered); $i += 1){
            fputcsv($handle, $filtered[$i], "|");
        }
    }
    ?>
    

    【讨论】:

    • @Ron 您在原始问题中标记为答案的代码也是如此。
    • @Ron 确实如此...file_put_contents:“...现有文件已被覆盖”。两者都覆盖了文件,但你是说我的程序删除了文件中的所有内容?
    • 拜托 - 它会删除所有内容吗? Both覆盖 文件,因为这就是函数的作用。但它会删除所有内容吗?我不想再听到你说“覆盖”。
    • 当我执行您的代码时,它删除了所有内容。文件是空的。
    • @Ron 好的,我明白了。返回您提出的原始问题并尝试该代码 - 确保它不会删除所有内容/清空文件。
    猜你喜欢
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多