Убрать пустые строки

Статус
В этой теме нельзя размещать новые ответы.

kinho

Постоялец
Регистрация
22 Мар 2008
Сообщения
268
Реакции
104
Доброго времени суток парни.
Задача такая. Есть куча файлов php. Хитрым образом эти файлы пришли в негодность.. в них образовалось куча пустых строк. Скрипты стали растянуты до невозможности. Даже править неудобно!
А при обработке выдаются ошибки типа: Cannot modify header information - headers already sent by и т.д.
Подскажите, пожалуйста, кто сталкивался.. как это исправить?
 
Используй Nusphere PHPEd.
С PhpED вы можете:
— создавать код с PHP IDE намного проще чем в обычном текстовом редакторе;
— отлаживать проект в мощном PHP отладчике (дебагере) DBG, отладку кода можно производить локально или удаленно;
— искать "узкие" места в проекте с помощью PHP (профайлером);
— безопасно и быстро опубликовывать ваши скрипты на удаленном сервере через протоколы, такие как FTP, FTPS, SSH / SFTP, и WebDAV;
— создавать расширения для интеграции с PhpED, стандартная поставка уже включает несколько инструментов: PHP documentor, HTML Tidy, CVS клиент и HTML валидатор.
 
пример скрипта скинь сюда, а то непонятно о чем речь вообще. ошибка "Cannot modify header information - headers already sent by" выводится когда до передачи хедеров в поток что то засунулось принтом или эхом, или ошибка самого пхп.
 
Вы случайно не с ФТП их брали? В скрипте кагбы добавилось по новой "строчке через строчку" (сори за сумбур)?
Встречал такое, когда гоняли файлы с фтп на комп, и через редактор на сайте их отредачили. В винде перевод строки это 2 символа, в никсах и маках по 1му символу.
Как варианты...
Попробуйте написать скрипт, который продейтся по всем файлам и удалит лишние строки.
В вашем редакторе попробуйте заменить через поиск (если он поддерживает нех-(аски-)кодировку) \r\n\r\n -> \r\n (0x0D 0x0A)
Или ручками их, ручками :)
 
Можно в phpDesigner попробовать функцию PHP Code Beautifier.
 
как я понемаю у тебя mysql база есть делаешь таблицу в ней ссылку на запись! а первый символ со строки можно получить (substr) читай команду!
===============================================================
Если не понятно напиши более подробно И дай пример таблиц!
 
С каждым файлом проделать такое действие:
Код:
$lines = file ('tttt.php');
$result = fopen("tttt_res.php", "w");
$n=count($lines);// к-во строк
for($i=0;$i<$count;$i++)
    if($lines[$i]!="")
	fwrite($result,$lines[$i];
fclose($result);
 
уберет пустые строки, будет легче редактировать скрипты
PHP:
$str=preg_replace("/\r\n\r\n/", "",$str);
ну а дальше сами, проверить на ошибки и тп
 
Проблема скорее всего в том что в начале скрипта стоят пустые строки тоесть
-----------------
!!! Пустая строка !!!
<?php
......
?>
-----------------
Видемо файл инклудится а может и не 1 и потом выдаются заголовки а в потоке уже есть данные вот и эррорит интерпритатор...
Попробуйте вот что.
Во всех файлах удолить \r\n от начала файла и до <?
Сейчас скриптик напишу для рекурсивного обхода и внесения данных изменений.
Добавлено через 33 минуты
PHP:
<?php
  $dirname = '.'; // Стартовая папка.
  $extentions = array('', '.php'); // Расширения файлов в которых производить обработку.
  scan_dir($dirname); // Собственно запуск ))
function scan_dir($dirname)
{
	GLOBAL $extentions, $count;
	$dir = opendir($dirname);
	while (($file = readdir($dir)) !== false)
	{
		if($file != '.' && $file != '..')
		{
			if(is_file($dirname.'/'.$file))
			{
				$ext = strrchr($file, '.');
				if (array_search($ext, $extentions))
				{
					// Чистит верхнии строки.
					file_put_contents($dirname.'/'.$file, preg_replace('#^[\r|\n]*<\?#smU', '<?', file_get_contents($dirname.'/'.$file)));
					// Чистит внутреннии строки.
					#file_put_contents($dirname.'/'.$file, preg_replace('#\r\n\r\n#', "\r\n", file_get_contents($dirname.'/'.$file)));
				}
			}
			if(is_dir($dirname.'/'.$file))
				scan_dir($dirname.'/'.$file);
		}
	}
	closedir($dir);
}
echo 'OK';
?>
Закиньте скрипт в корень проекта и запустите как только он ответит вам ОК попробуйте ваш проект ерорит или нет.
Если эрорит то можно ещё удалить лишнии \r\n в файлах и далее вручную искать проблему.
Для того чтобы подчисстить повторяющиеся пустые строки в файлах распомментируйте 2 строку. (она там подписана) И запускайте столько раз сколько потребуется для придания читабельного вида.
Я не стал делать удоление 2 строк а делал замену 2 строк на 1 дабы не произошла склейка...


Скрипт работает сразу со всеми файлами обходя папки. Просто в корень капируйте и запускайте.
Так же в скрипте можно указать файлы с каким разширением редактировать.
 
PHP:
$text = str_replace("
", "", $text);
)))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху