Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Другие движки / фрейморки > Копирование файлов по ссылкам со страницы


Автор: meddoc 31.12.2005, 00:06
Сделал скрипт для автообновления новостей, а кэширование не могу сделать. Мне нужен скрипт который:
1 Заходит на заданную страницу
2 Считывает все ссылки (по шаблону, т.е. не все пдряд, а только например http://site.ru/news/razhoe/)
3 Сохраняет страницы, на которые ссылаются эти ссылки, в определенную директорию у меня на сайте.

P.S. Только скрипт как можно проще, без библиотеки CURL

Автор: AztEK 31.12.2005, 16:11
Очень зря без cURL. Мне кажется, так проще всего...

Автор: meddoc 1.1.2006, 19:24
Цитата
Очень зря без cURL. Мне кажется, так проще всего...


Дело в том что я нашел скрипт с cURL, но в нем есть функция curl_exec, а у меня на хостинге она не работает...

Кому интересен вот ссылка:
_http://script.vanta.ru/php1/phpwebcopier.1.0.tar.gz

Автор: -=Ustas=- 2.1.2006, 00:05
Если у хостера в настройках пхп allow_url_fopen = On , тогда юзай либо file_get_contents или join("", file()).

Автор: meddoc 2.1.2006, 21:07
Цитата
Если у хостера в настройках пхп allow_url_fopen = On , тогда юзай либо file_get_contents или join("", file()).


Это понятно.
А как организовать скрипт перебора(пролистывания) адресов(URL) из списка? smile smile

Автор: meddoc 2.1.2006, 23:51
Нашел скрипт кэша, только не пойму как он работает smile

Код

<?php 

$cache_file = $REQUEST_URI; 
$maker_URL = str_replace ( "/cache/" , "/" , $cache_file ); 
$maker_URL = str_replace ( ".html" , "" , $maker_URL ); 
$last_slash = strrpos ( $maker_URL , "/" ); 
$script = substr ( $maker_URL , 0 , $last_slash ) . ".php"; 
$find = $DOCUMENT_ROOT . $script; 
if ( !file_exists ( $find )) { 
    exit; 
} 
$query_str = "?" . substr ( $maker_URL , $last_slash+1 ); 
$query_str = str_replace ( "__" , "&" , $query_str ); 
$query_str = str_replace ( "_" , "=" , $query_str ); 
$maker_URL = "http://" . $HTTP_HOST . $script . $query_str; 
$read = fopen ( $maker_URL , "r" ); 
if ( !$read ) { 
    echo ( "Could not open $maker_URL" ); 
    exit; 
} 

$HTML_output = ""; 
while ($line = fgets ( $read , 256 )) { 
    $HTML_output.= $line; 
    echo $line; 
} 
fclose ( $read ); 
$write = fopen ( $DOCUMENT_ROOT . $cache_file , "w" ); 

if ( !$write ) { 
    echo ( "could not open $writefile for writing" ); 
    exit; 
} 
if ( !flock ( $write , LOCK_EX + LOCK_NB )) { 
echo ( "could not lock $writefile" ); 
    exit; 
} 

fwrite ( $write , $HTML_output , strlen ( $HTML_output ) ); 
flock ( $write , LOCK_UN ); 
fclose ( $write ); 
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)