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;
}
?>