Добрых суток! У меня возник очередной вопрос по работе с текстовым файлом, но не стал писать здесь, а решил создать новую тему. Хотелось бы посоветоваться, как лучше организовать работу скрипта: Есть текстовый файл, в котором находится некоторая информация вот в таком виде data|headline|description\n где data - это дата записи, headline - это заголовок, description - это описание. Цель скрипта: Удалить из текстового файла те строки, в которых дата недельной давности (другими словами строка в файле живет неделю, а потом бесследно удаляется ). Я не могу понять, как мне вытащить значение data, что бы сравнить его с текущей датой. Если делать так, считать весь текстовый файл построчно в массив, а потом каждую строку тоже в массив и уже в этом массиве найти дату и вычислить, не устарела ли она (помоему - это топорно) Пока в Гугле искал, что то промелькнуло насчет частичного считывания строки из файла, но я так и не понял как применить это в моем случае. Ищу совета, как лучше сделать!
PHP: <? $string="data|headline|description\ndata2|headline2|description2\n"; $string=explode("\n",$string); foreach($string as $key=>$value) { $line=explode("|",$value); #$line[0]="data"; её и сравниваем. if($line[0]!="24-10-11") #если она нам не подходит unset($string[$key]); #то удаляем всю строку массива } $string=implode("\n",$string); #Соединяем массив заново в строку ?> писал на коленке, могут быть ошибки люблю построение на explode =)
я бы писал каждую новую неделю в новый файл, и удалял бы старый но в прошлом вопросе вроде же выташ,или дату ['datetim'] это и сравнивай, там насколько я помню был массив вида: $ar = array( 0 => array('datetime' => , ...), 1 => array('datetime' => , ...), .... N => array('datetime' => , ...) ); сравнивая даты удаляй индекс новый массив снова в строчку и записывай в файл.
Ну вот спасибо еще раз! Все оказалось "проще пареной репы" Следуя вашим советам, сделал следующее: PHP: <? $y=date("y"); $m=date("m"); $d=date("d"); $dt=$d-7; if($dt<1){$dt=1;} $string=file_get_contents($adres); $string=explode("\n",$string); foreach($string as $key=>$value) { $line=explode("|",$value); if($line[0]<=$dt) {unset($string[$key]);}} $string=implode("\n",$string); Только немного файл на запись поправлю.
Еще один вопрос! (мне это так, для расширения кругозора) Если взять часть скрипта: PHP: <? foreach (массив as $ключ=>$значение) { ...тут выполняется.. ...какой...то цикл... if (какое то условие) {ели true то .......... } } Вопрос, что первое закрывается цикл или условие?
SV4 Смотря как расставишь оступы PHP: <? foreach (массив as $ключ=>$значение) { ...тут выполняется.. ...какой...то цикл... if (какое то условие) {ели true то .......... } // Первым закроется while } и PHP: <? foreach (массив as $ключ=>$значение) { ...тут выполняется.. ...какой...то цикл... if (какое то условие) {ели true то .......... } } разные вещи
siiXth Зануда, я не говорил про то "что первым закрывается". Я сказал что это "разные вещи". И вообще, вы ходите сказать что фигурные скобочки можно ставить "как попало"?
topas поговоришь со мной в реале - осознаешь насколько ты сам зануда , окей ? какие ещё отступы ? слева большим пробелом ? они на чтото когда-то влияли ? =D
Окей, а в плане выполнения скрипта ? =D Уверен что можно абсолютно рандомно пихать скобки (не проводить форматирование ставя открывающие и закрывающие скобки друг-под другом с иерархическим отступом) и ничего не будет. Это всёго-лишь для нашего глаза
возможно я немного прогадал , но автор разве спрашивал про оформление ? вот я и счёл что к оформлению это никаким боком. пхааа во-первых в 3ем классе на паскале ляпал во-вторых - то что вы имеете в виду, называется стандартом оформления кода , диагональное программирование - это блин перл всея сети чао толстый юмор для тонких дядек
Ты смотри , нубы будут читать тему - сам будешь отвечать на 20 тем в день "научите программировать диагонально" уууууууииииииииии з.ы. поехал к другу тестить прирост скорости при замене умножения переменных их сложением при условии что одно из чисел шестизначное. ся такая ся
sobachnik странные у него шуточки. даже Notepad++ всегда все верно тебе подсвечивает, что и где нужно закрыть. расстановка пробелов никак не повлияет. развели на пустом месте
Сегодня решил почитать насчет отступов и их "влияние" на выполнение функций. Результат поисков полный ноль. Если отступы, как то действуют на выполнение кода, не мешало бы ссылку на руководство оставить, а то ощущение такое складывается, что пробел он и в Африке пробел.