2014-01-28 54 views
-3

此腳本從種子URL中獲取鏈接,並僅將它們打印到命令shell(或瀏覽器)中,而不是保存在別處。我希望腳本將任何輸出存儲在腳本所在文件夾內的.txt文件中。我需要建議什麼可能是有效的方式來做到這一點。請給我提示。需要更改PHP刮板腳本

<?php 

# Initialization 
include("LIB_http.php");      // http library 
include("LIB_parse.php");      // parse library 
include("LIB_resolve_addresses.php");   // address resolution library 
include("LIB_exclusion_list.php");    // list of excluded keywords 
include("LIB_simple_spider.php");    // spider routines used by this app. 


set_time_limit(3600);       // Don't let PHP timeout 

$SEED_URL  = "http://www.schrenk.com"; // First URL spider downloads 
$MAX_PENETRATION = 1;       // Set spider penetration depth 
$FETCH_DELAY  = 1;       // Wait one second between page fetches 
$ALLOW_OFFISTE = false;      // Don't allow spider to roam from the SEED_URL's domain 
$spider_array = array(); 

# Get links from $SEED_URL 
echo "Harvesting Seed URL \n"; 
$temp_link_array = harvest_links($SEED_URL); 
$spider_array = archive_links($spider_array, 0, $temp_link_array); 

# Spider links in remaining penetration levels 
for($penetration_level=1; $penetration_level<=$MAX_PENETRATION; $penetration_level++) 
    { 
    $previous_level = $penetration_level - 1; 
    for($xx=0; $xx<count($spider_array[$previous_level]); $xx++) 
     { 
     unset($temp_link_array); 
     $temp_link_array = harvest_links($spider_array[$previous_level][$xx]); 
     echo "Level=$penetration_level, xx=$xx of ".count($spider_array[$previous_level])." <br>\n"; 
     $spider_array = archive_links($spider_array, $penetration_level, $temp_link_array); 
     } 
    } 

?> 
+0

你的問題是「如何將字符串保存到文件?」 - >「 'file_put_contents()'是你的朋友[和谷歌以及]。 – moonwave99

+0

搜索Ob_Start()和file_put_contents()並告訴我它是否服務於你想要的,我舉一個例子 –

+0

#Vinicius file_put_contents()是解決方案I正在尋找。 – user2928990

回答

0

我會建議首先創建一個變量來保存腳本輸出。因此,在頂部(下$spider_array=array())地址:

$output = ""; 

改變所有的線用echo$output .=

這將存儲所有發送到屏幕或瀏覽器進入$output變量的內容。

現在在腳本的底部,一切都已經刮和蜘蛛完成後,將輸出保存到一個文件:

$filename = date('Y_m_d_H_i_s') . '.txt'; 
$filepath = dirname(__FILE__); 
file_put_contents($filepath . '/' . $filename, $output); 

這應該保存在同一文件夾內的文件輸出帶日期/時間文件名的腳本。 (這段代碼是使用php.net中的示例編寫的,確切的實現可能需要一些調試,但這應該讓你足夠接近。