Вход Регистрация
Файл: htmlpurifier-4.3.0/maintenance/rename-config.php
Строк: 128
#!/usr/bin/php
<?php

chdir
(dirname(__FILE__));
require_once 
'common.php';
require_once 
'../library/HTMLPurifier.auto.php';
assertCli();

/**
 * @file
 * Renames a configuration directive.  This involves renaming the file,
 * adding an alias, and then regenerating the cache.  You still have to
 * manually go through and fix any calls to the directive.
 * @warning This script doesn't handle multi-stringhash files.
 */

$argv $_SERVER['argv'];
if (
count($argv) < 3) {
    echo 
"Usage: {$argv[0]} OldName NewNamen";
    exit(
1);
}

chdir('../library/HTMLPurifier/ConfigSchema/schema');

$old $argv[1];
$new $argv[2];

if (!
file_exists("$old.txt")) {
    echo 
"Cannot move undefined configuration directive $oldn";
    exit(
1);
}

if (
$old === $new) {
    echo 
"Attempting to move to self, abortingn";
    exit(
1);
}

if (
file_exists("$new.txt")) {
    echo 
"Cannot move to already defined directive $newn";
    exit(
1);
}

$file "$old.txt";
$builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
$interchange = new HTMLPurifier_ConfigSchema_Interchange();
$builder->buildFile($interchange$file);
$contents file_get_contents($file);

if (
strpos($contents"rn") !== false) {
    
$nl "rn";
} elseif (
strpos($contents"r") !== false) {
    
$nl "r";
} else {
    
$nl "n";
}

// replace name with new name
$contents str_replace($old$new$contents);

if (
$interchange->directives[$old]->aliases) {
    
$pos_alias strpos($contents'ALIASES:');
    
$pos_ins strpos($contents$nl$pos_alias);
    if (
$pos_ins === false$pos_ins strlen($contents);
    
$contents =
        
substr($contents0$pos_ins) . ", $oldsubstr($contents$pos_ins);
    
file_put_contents($file$contents);
} else {
    
$lines explode($nl$contents);
    
$insert false;
    foreach (
$lines as $n => $line) {
        if (
strncmp($line'--'2) === 0) {
            
$insert $n;
            break;
        }
    }
    if (!
$insert) {
        
$lines[] = "ALIASES: $old";
    } else {
        
array_splice($lines$insert0"ALIASES: $old");
    }
    
file_put_contents($fileimplode($nl$lines));
}

rename("$old.txt""$new.txt") || exit(1);
Онлайн: 0
Реклама