Сохранение URL
04 Фев 2009
Знаете такие программы как Offline браузеры или менеджеры. Они берут ссылку, сливать вам на диск все что по ней есть (картинки, музыку, видео, сами страницы) после чего вы можете пользоваться материалом как хотите. Не так давно, я занимался копи / пастингом материалов с разных сайтов на свой. Все бы хорошо, но это такое утомительное дело, постоянно пересохранять картинки, которые ведут на другой сайт. Сначала весь текст, потом по каждой картинке приходилось сохранить, вставить через визивиг, настроить выдимость. Если картинок было десятки штук — ну просто утомительное занятие.
И вот, к чему я веду, придумал я идею, как упростить этот процесс.
Алгоритм:
- Берем нужный нам контент (Копи / пасти)
- Вставляем его в наш Визивиг или TEXTAREA
- Жмем на кнопку «Загрузить»
- Срабатывает скрипт, который парсит все внешние ссылки и забивает их в массив
- Далее срабатывает код, который по одиночке скачивает ссылку в файловую систему
- и последнее — срабатывает код, который делает замену, старых урлов (картинок например), на новые, относительно вашего сайта
Весь код я вам не напишу, а дам только процесс сливания файлов из интернета на ваш диск:
function fetchURL( $url ) { $url_parsed = parse_url($url); $host = $url_parsed["host"]; $port = $url_parsed["port"]; if ($port==0) $port = 80; $path = $url_parsed["path"]; if ($url_parsed["query"] != "") $path .= "?".$url_parsed["query"]; $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n"; $fp = fsockopen($host, $port, $errno, $errstr, 30); fwrite($fp, $out); $body = false; while (!feof($fp)) { $s = fgets($fp, 1024); if ( $body ) $in .= $s; if ( $s == "\r\n" ) $body = true; } fclose($fp); return $in; } $filedata = fetchURL('http://site.ru/image.jpg'); $fn = fopen('./path/to/file.jpg','w+'); fwrite($fn,$filedata); fclose($fn);
Последние комментарии