2010-10-30 50 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);
}