Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB59.1450
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 06.04.2015, 02:41   #1
Jordan
DINAmo
 
Аватар для Jordan
 
Регистрация: 26.08.2007
Сообщений: 117
Бабло: $21110
По умолчанию Помогите с небольшим скриптом.

Нужен небольшой скрипт, для знающих php дело пары минут наверное. В общем есть папка, в ней лежат файлы. Надо из каждого файла спарсить текст от и до определённой строки, например от 190 до 200. И положить напарсенные отрезки в файл, один за другим, только поставить какой-нибудь разделитель, типа *.

Может кто-то напишет за спасибо или там пару баксов?

Или может есть готовое решение? С Text Pipe возился, ничего не понял (.
__________________
Jordan вне форума  
Старый 06.04.2015, 03:22   #2
oxenus
Senior Member
 
Регистрация: 03.08.2007
Сообщений: 112
Бабло: $12820
По умолчанию

Код:
<?php

$fout=fopen("output.txt","w");

$delim="******";

$filemask="*.html";

$folder="in/";

$start=190;$end=200;

foreach (glob($folder.$filemask) as $filename) {
		parse_file($filename);
}

fclose($fout);

function parse_file($filename){
	global $fout,$start,$end,$delim;
	echo "Processing $filename\n";
	$buf=file($filename);
	for($i=$start;$i<$end;$i++){
		fwrite($fout,$buf[$i]);
	}
	fwrite($fout,$delim."\n");
}
Это если файлы не большие.
Если большие - чуть другой код
oxenus вне форума  
Старый 06.04.2015, 03:42   #3
Scofield
Yeah Bitch! Magnets!
 
Аватар для Scofield
 
Регистрация: 02.12.2010
Сообщений: 475
Бабло: $75399
По умолчанию

PHP код:
<?php
$direction 
"test/"// Папка
$extension ".txt"// Расширение файла
$delim "*"// Разделитель
$from 1// Откуда
$to 7// Куда
$fpEnd fopen('result.txt''wb'); // Результат

foreach (glob($direction."*".$extension) as $fName) {
    
$lifeTime substr(file_get_contents($fName), $from-1$to).$delim;
    
fwrite($fpEnd$lifeTime);
}
fclose($fpEnd);
__________________
It don't mean a thing, if it ain't got that swing (c) Duke Ellington
Scofield вне форума  
Старый 06.04.2015, 15:53   #4
Jordan
DINAmo
 
Аватар для Jordan
 
Регистрация: 26.08.2007
Сообщений: 117
Бабло: $21110
ТС -->
автор темы ТС По умолчанию

Спасибо! Первый работает как надо, во втором парсится не от 190-й строки, а от 190-го знака. Ну в любом случае, первый скрипт решил задачу, так что спасибо, oxenus, напиши кошелёк в личку, скину на пиво, выручил.
__________________
Jordan вне форума  
Старый 06.04.2015, 23:12   #5
oxenus
Senior Member
 
Регистрация: 03.08.2007
Сообщений: 112
Бабло: $12820
По умолчанию

Да оставь ты это.
Лучше скинь деткам на помощь в благотворительность, как будут собирать.
oxenus вне форума  
Старый 07.04.2015, 01:23   #6
Ruby
Senior Member
 
Аватар для Ruby
 
Регистрация: 18.09.2014
Сообщений: 105
Бабло: $16450
По умолчанию

PHP код:
File.open("newfile",  "w+") do |f# Создаем файл с названием newfile
    
start,finish 1# Задаем диапазон
    
Dir.glob("path_to_files/*.txt").each do |x# Прописываем название папки с файлами и их расширение.
        
arr = []
        
File.foreach(x) do |line|    
               
arr << line
        end
        f 
<< "#{arr[start-1,finish].join("")}\n***\n\n"
    
end
end 
Версия на рубях А то один пхп везде глаза мозолит
Ruby вне форума