Показать сообщение отдельно

"PHP Copy-siter"
  #8  
Старый 03.06.2010, 14:17
DoN
Познающий
Регистрация: 26.05.2010
Сообщений: 48
Провел на форуме:
110887

Репутация: 19
Post "PHP Copy-siter"


PHP Copy-Siter
Скрипт для копирования сайта без потери css, img и scripr инклудов.

Долго сидя вдруг захотелось что-то написать и в голову пришла мысль сделать скрипт который будет копировать сайт)
Пока что это только 0.1 версия в которой куча недочётов и недостатков, НО со временем мы всё исправим)

В чём смысл? И как работает скрипт?
Всё просто вы вводите в скрипт там где $url адресс сайта и сохраняете, заливаете его на хостинг и радуетесь)

Работает просто, парсит страницу, заменяет там теги на ссылки, при этом не трогает инклуды файлов и картинков.

Возможности:
1) Парсинг страницы
2) Парсинг страницы если скрипту(На вашем хостинге) передали параметр localhost/index.php?123=123, то скрипт соотвественно спарсит этот же адресс с другого сайта)
3) Заменя прямых и не прямых ссылок
4) Сохранения инклудов картинок, скриптов, css даже если ссылка не прямая

Недочёты:
1) Не работает с ссылками что сидят на htaccess'e (В новой версии постараюсь сделать)
2) Для скриптов отличающихся от index.php нужны отдельные файлы скрипта-копиря (Например если есть site.ru/pars.php, то нужно сделать localhost/pars.php)
3) Не парсятся html - Т.к. имя расшерения разное (Когда подключу htaccess исправлю)
4) Изза моей лени, пришлось убирать все знаки " и ' (Естественно исправим)
5) Нет поддержки входа форм login и т.п.

Пока что скрипт работает на уровне парсинга ГС страничек, т.к. нет поддержки входа форм.

Кароче выполнено 10% задания. Думаю за 2-3 недели будет полноценный копирь с админкой.
Пока что оценивайте то что есть и саму идею!

Сам скрипт

Код:
<?php
//Получаем страницу и в зависимости от адресса переходим на нее
$url = "http://t.blo/im"; //С http://
$url2 = "t.blo/im"; //Без http://

$host = "http://localhost"; // Ваш адрес

if ($_SERVER[REQUEST_URI]) {
$url2 = $_SERVER[REQUEST_URI];   //Получаем адресс запроса
}


$site = file_get_contents("$url$url2");  //Получаем страницу
// конец


// Это самый нелепый этап, мне лень было делать иначе
$srsr = array();
$srsr[0] = '|"|';
$srsr[1] = "|'|";
$srcsiter = preg_replace($srsr,"",$site);
// Конец

//Замена src адрессов для script, img и т.п. которые стоят без прямой ссылки
$srcsite = preg_replace('|src=/|',"src=$url/",$srcsiter);
// Конец

//Замена все href адрессов без прямой ссылки на нашу ссылку
$hrefsite = preg_replace('|href=/|',"href=$host/",$srcsite);
//конец

//заменя всех ссылок сайта на нашу
$ur = array();
$ur[0] = "|href=$url|";
$siter = preg_replace($ur,"href=$host",$hrefsite);
//конец



print_r ($siter);
?>

Если у кого есть желание мне помочь, оставте контакты в теме или ПМ..
//by m0hze: для отдельной темы не тянет ни разу.И где тут скрипт? file_get_contents, olololo

Последний раз редактировалось m0Hze; 03.06.2010 в 16:11..
 
Ответить с цитированием