【问题标题】:How to generate files from a list of file names contained inside a .txt file?如何从 .t​​xt 文件中包含的文件名列表生成文件?
【发布时间】:2011-11-18 17:26:02
【问题描述】:

我有一个 .txt 文件,其中包含大约 500 个文件名的列表。我需要根据列表生成实际文件。我可以在本地使用 CMD,也可以使用 PHP。哪个是最好的。每个文件名都在 .txt 中的单独一行上,并且没有其他标点符号或语法。例如,.txt 文件名为 colors.txt: 并且文本文件中的每一行都包含一个唯一的文件名,如下所示:

red.php
blue.php
green.php
orange.php
yellow.php
magenta.php
light-yellow.php
purple.php

我将如何将列表中的这些名称实际转换为文件?而且,更好的是,有没有办法在生成文件时将内容包含到文件中?例如,如果我想在创建的每个新 .php 文件中自动插入<?echo "hello world";?>,我该怎么做?谢谢

【问题讨论】:

    标签: php batch-file code-generation cmd text-files


    【解决方案1】:

    注意:这是 Windows 的批处理脚本。

    要从您的 colors.txt 列表中创建这些文件并将回显行添加到每个文件,请使用以下 FOR /F 循环:

    FOR /F "tokens=*" %%A IN (colors.txt) DO (
      (ECHO ^<?echo "hello world";?^>)>"%%A"
    )
    

    注意在ECHO 命令中,您必须使用^&lt;&gt; 字符进行转义,以将它们变成文字字符串,否则批处理脚本会认为它们是重定向命令。

    【讨论】:

      【解决方案2】:

      我不完全确定你想在这里做什么。我的直觉告诉我,可能有更好的方法来解决您正在处理的大局问题。尽管如此,您可以尝试以下方法:

      foreach (file('colors.txt') as $filename) {
          file_put_contents($filename, '<?php echo "hello world";');
      }
      

      您可能还想对文件名进行一些完整性检查,以确保它们可以安全使用。

      【讨论】:

      • 谢谢。我将该代码本身放在 index.php 文件中(与 .txt 文件相同的目录)。在浏览器中打开 index.php,效果很好,但只生成了一个文件,即文本列表中的最后一个文件。文本列表中有五十多个文件名。有什么想法吗?
      猜你喜欢
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      相关资源
      最近更新 更多