[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: file,array,unset
andrey888
// Test..
$find=array();
$i='bla';
$ourfile=file($i.".txt");
foreach($ourfile as $k=>&$val){
if($find=explode('|',$val)){
if($find[0]!='0' && $find[0]<'2013-12-29'){ //элемент $find[0] содержит дату вида year-mm-dd
unset($ourfile[$k]); //нашли вхождение удаляем из массива.
}
}
}

$newfile = implode('',$ourfile); //соединяем новый массив в строку
file_put_contents($i.".txt",$newfile); //записываем обновленный файл.


Когда файл (на этом примере) bla.txt заполняется из БД , этот простой скрипт выполняет все что нужно , все строки с первым вхождением даты меньше 2013-12-29 удаляются ..

При этом если я сам дописываю в файл строки, которые должны удалится - они все удаляются КРОМЕ первой ... (то есть если одну из таких строк я ставлю на первую строчку в файле - она не удаляется) ..

Мысли нашли только про разницу в кодировке ... проверил из БД выходит файл utf-8 . Вставил строку на первое место в файле , сохранил как utf-8 .. Нифига.. опять первая строка остается .. :huh:

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
andrey888
mb_detect_encoding("bla.txt") выдает ASCII . Причем всегда.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Winston
Можешь выложить сюда часть содержания файла? Я у себя попробую.
andrey888
нет проблем это простой тестовый текст файл.
пример ниже

2013-12-28|плохая дорога|Плохая дорога|100
0|увув|увув|79
0|few|few|63
2013-12-25|плохая дорога|Плохая дорога|100


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Winston
Странно, у меня всегда удаляются все строки для которых выполняется условие. Оба файла в UTF-8
andrey888
Winston Еще одно подметил . Когда правлю файл в блокноте - вот тогда первая строчка остается ... а если править в notepad++ все ок ... Хотя и там и там на выходе utf8 ..

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Valick
BOM

_____________
Стимулятор ~yoomoney - 41001303250491
andrey888
BOM имеется и когда файл правится на notepad++ .. он там и должен быть и все работает ) залазишь с блокнота - будто магия - первая строчка перестает удаляться ..

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.