2014-01-28 2 views
-3

Этот скрипт собирает ссылки из URL-адреса семпла и только печатает их в командной оболочке (или в браузере), а не в другом месте. Я хочу, чтобы скрипт сохранял любые выходы в .txt-файле в папке, где находится скрипт. Мне нужны предложения, что может быть эффективным способом сделать это. Пожалуйста, дайте мне подсказки.Сценарии php scraper необходимо изменить

<?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()' является вашим другом [и google]. – 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, для точной реализации может потребоваться некоторая отладка, но это должно быть достаточно близко.

Смежные вопросы