
01.07.2008, 16:30
|
|
Участник форума
Регистрация: 13.11.2007
Сообщений: 180
С нами:
9732984
Репутация:
122
|
|
Кто качал сайты прогами Teleport Pro или Offline Explorer Enterprise . Тот наверное сталкивался с тем что конечные файлы получаются с расшерением к примеру ".php@id=news&new=2406200402&print=1"
Обработать пхп в таких файлах врядли получится, я пытался хтаксесс заставить это сделать ничего не вышло. Но если у Вас пару файлов то это не беда но если их кол-во переваливает за 100 то уже влом руками править ссылки. И был написан вот такой скрипт :
1. Скрпт находит все файлы с "кривыми расширениями"
2. Правит в них все линки, заменяя окончание на .php
например было
index.php@id=news&new=2406200402&print=1
стало
index_id=news&new=2406200402&print=1.php
3. Перебивает все имена файлов по принципу пункта "2"
4. Удаляет кривые файлы и осталяет нужные
PHP код:
<?
$start_dir = "123"; //сюда пишем директорию в которой будем искать и заменять
$FILES = array();
function found_directory($dirname) {
global $FILES;
if (is_dir($dirname)){
$dir_handle = opendir($dirname);
}
if (!$dir_handle){return false;}
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file)){
if (preg_match('/(?:index\\.php[@](.*))|(?:(.*).html?)/', $file)) {
$FILES[] = $dirname."/".$file;
}
}else{
found_directory($dirname.'/'.$file);
}
}
}
closedir($dir_handle);
return true;
}
found_directory($start_dir);
//print_r($FILES);
set_time_limit(0);
foreach($FILES as $file_n){
$cont=file_get_contents($file_n);
$cont = preg_replace('~href=("|\')?([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)("|\')?~', 'href=$1$2_$3.php$4', $cont);
$cont = preg_replace('/href=("|\')?(.*)\\.html?("|\')?/', 'href=$1$2.php$3', $cont);
$f_n = preg_replace('~([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)~', '$1_$2.php', $file_n);
$f_n = preg_replace('/(.*)\\.html?/', '$1.php', $f_n);
$handle = fopen($f_n, 'w');
fwrite($handle, $cont);
fclose($handle);
unlink($file_n);
echo($file_n." ($f_n)<br>");
}
?>
Мини-инструкция:
кидаем весь сайт например в директория "123"
рядом с ней кидаем файл скрипта и запускаем.
все ждем окончания.
Юзайте кому надо. 
Последний раз редактировалось iron-viper; 01.07.2008 в 16:47..
|
|
|