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

  #387  
Старый 01.07.2008, 16:30
iron-viper
Участник форума
Регистрация: 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..
 
Ответить с цитированием