2010-10-30 47 views
3

我有一个文本文件,充满管道分隔的URL,就像这样:阅读从文本文件中的一行,然后将其删除

http://www.example.com|http://www.example2.com|http://www.example3.com|.... 

目前,我有这个代码读取每个从文件的URL并把它传递给函数:

<?php 
    $urlarray = explode("|", file_get_contents('urls.txt')); 

    foreach ($urlarray as $url) { 

    function1($url); 

    } 

?> 

我想做其次是,功能1()完成后,删除文字file.That方式,URL,当剧本完成后会通过urls.txt中的所有URL,这个文本f ile应该是空的。

我该如何做到这一点?

感谢, 拉斐尔

回答

3

有没有办法删除从文本文件的开头或中间的东西,而重写整个事情。 See here。只需浏览所有网址,然后删除该文件或其他任何网址,并使用它覆盖原始文件。

+0

啊是的,那是我的计划B.谢谢! – RafaelM 2010-10-30 04:18:56

0

你可以拉爆炸列表的第一个URL,它发生内爆,它写回文件:

while($urls = explode('|', file_get_contents('urls.txt'))) { 

    $first_url = array_shift($urls); 

    file_put_contents('urls.txt', implode('|', $urls)); 

    function1($first_url); 
} 

你期待这个过程被打断?如果不是,它更有意义,简单地认为所有的URL将被处理和空白文件时程序完成:

foreach (explode('|', file_get_contents('urls.txt') as $url) { 
    function1($url); 
} 

file_put_contents('urls.txt', ''); 
+0

不,我需要实际上从urls.txt文件中删除URL后,通过function1() – RafaelM 2010-10-30 05:39:11

+0

我的解决方案将工作,如果你只是简单地将它包装在一个while循环,但它正在做kijin建议:重写整个文件每次。 – meagar 2010-10-30 14:15:09

2

$ urlarray =爆炸(“|”,$内容=的file_get_contents ( 'urls.txt'));
print_r($ contents);
foreach($ urlarray as $ url){
$ tempcontent = str_replace($ url。“|”,“”,$ contents,$ x = 1);
$ contents = $ tempcontent;
$ fp = fopen('urls.txt',“w”);
fwrite($ fp,$ contents);
fclose($ fp);
}