我有一段PHP代码如下:
$write_URLs = fopen("links/WriteURLs.txt", "w");
foreach ($list_URLs as $htmlLink) {
GetURLs ($htmlLink);
foreach ($URLs as $URL) {
fwrite($write_URLs, $URL ."'n");
}
}
fclose($write_URLs);
上面的代码在每次执行时都会在links/WriteURLs.txt
上写入url,因此WriteURLs.txt
文件不能保存上次执行的结果。
问题是我想检查links/WriteURLs.txt
是否存在,然后开始在新文件上写入url,例如links/01-WriteURLs.txt
, links/02-WriteURLs.txt
, ... .之后,我想开始从生成的文件(即不是所有文件,只有在最后一步生成的一个)links/WriteURLs.txt
, links/01-WriteURLs.txt
, links/02-WriteURLs.txt
或…,并为每个URL
回显HELLO WORLD
。下面您可以看到我尝试开发的代码的不完整版本。你能帮我解决这个问题吗?由于
$i = 1;
$write_URLs = fopen("links".DIRECTORY_SEPARATOR. $i. "-WriteURLs.txt", "w");
if(file_exists($write_URLs)) {
fclose($write_URLs);
$new_write_URLs = fopen("links".DIRECTORY_SEPARATOR. $i++. "-WriteURLs.txt", "w");
} else {
foreach ($list_URLs as $htmlLink) {
GetURLs ($htmlLink);
foreach ($URLs as $URL) {
fwrite($new_write_URLs, $URL ."'n");
}
}
}
fclose($new_write_URLs);
$trimmed = file(???????????, FILE_IGNORE_NEW_LINES);
foreach ($trimmed as $URL) {
echo "Hello World";
}
如果您想从刚刚写完的文本文件中读取数据,您可以简单地跟踪正在处理的文件的名称,然后在稍后的读取过程中使用它,像这样:
$i = 0;
do {
$filename = "links".DIRECTORY_SEPARATOR . $i++ . "-WriteURLs.txt";
} while (file_exists($filename));
$write_URLs = fopen($filename, "w");
foreach ($list_URLs as $htmlLink) {
$URLs = GetURLs ($htmlLink);
foreach ($URLs as $URL) {
fwrite($write_URLs, $URL ."'n");
}
}
fclose($write_URLs);
$trimmed = explode("'n",file_get_contents( $filename ) );
foreach ($trimmed as $URL) {
echo "Hello World";
}