fwrite encoding

izto4na_lipa

Registered
Привет! Опитвам се да напиша скрипт който при стартирането си да изтрие всички коментари от пхп скриптовете в същата директория. Нещо обаче енкодинга прави номера и първо изкарва всички интервали като питанки. Това го оправих по най-циганския начин с един риплейс, обаче стана нещо още по-странно - сега файловете наистина биват успешно пренаписвани с изтрити коментари, обаче не работят, давайки несъществуващи синтактични грешки. Несъществуващи със сигурност, защото щом пренапиша реда с грешка 1 към 1 скрипта вече го чете вярно и изкарва грешка на следващия ред. Нещо енкодинга е проблем със сигурност. Имате ли идеи? Код:
Код:
<?php  
ini_set('display_errors', 'on');
//header("Content-Type: text/plain"); 
  function dirList ($directory) 
{

    // create an array to hold directory list
    $results = array();

    // create a handler for the directory
    $handler = opendir($directory);

    // keep going until all files in directory have been read
    while ($file = readdir($handler)) {

        // if $file isn't this directory or its parent, 
        // add it to the results array
        if ($file != '.' && $file != '..')
            $results[] = $file;
    }

    // tidy up: close the handler
    closedir($handler);

    // done!
    return $results;

}
$allfiles = dirList('./');
//echo   highlight_file ("index.php", true);  
         
foreach($allfiles as $x) {
    if(!strpos($x, '.php') && !strpos($x, '.inc')) continue;
    if($x == 'fokus.php') continue; 
$str =  highlight_file ($x, true);  
$str = preg_replace('#/\*.*?\*/#', "", $str, -1); 

$str = preg_replace('#//.*?' .preg_quote('<br />') . '*#', "", $str, -1); 
$str = str_replace("<br />", "\n",  $str);
$str = html_entity_decode(strip_tags($str));
$str = str_replace("<?", "kukurigusmagdanoz",  $str); 
$str = str_replace("?>", "magdanozkukurigu",  $str);
//echo $str; 
$str = str_replace("?", " ",  $str);
$str = str_replace( "kukurigusmagdanoz", "<?", $str); 
$str = str_replace("magdanozkukurigu", "?>",  $str);    
$fp = fopen($x, "w");
fwrite($fp, $str);
fclose($fp);   
 echo $x . '---' . $str;  
}  
 
?>
 

Back
Горе