$f=fopen($db,'w+');
$tfl=fread($f, filesize($db));
$tfl=str_replace("\xEF\xBB\xBF","",$tfl);
fwrite($f, $tfl)
fclose ($f);
Если вынести чтение в отдельный процесс все работает, а так нет, т.е. он обнуляется прежде чем прочитаться несмотря на w+ и то что fread идет перед fwrite-ом.
Можно ли прочитать из файла и записать в него же за один fopen-процесс?
Спустя 2 часа, 52 минуты, 23 секунды (9.02.2011 - 00:08) waldicom написал(а):
get_file_contents + put_file_contents ?
Спустя 7 часов, 20 минут, 20 секунд (9.02.2011 - 07:28) LRCenter написал(а):
Если так только.
Спустя 1 год, 1 месяц, 19 дней, 6 часов, 49 минут, 59 секунд (28.03.2012 - 13:18) d.v.e написал(а):
Можно его не удалять, а пропускать при чтении, что бы не лопатить весь файл, особенно если он достаточно большой. Я обычно так и делаю.
Для разбора csv примерно так:
Для разбора csv примерно так:
if (($handle = fopen('file.csv', "r")) !== false) { // открываем файл
if (fread($handle, 3) == "\xEF\xBB\xBF") { // проверяем наличие BOM (bite order mark)
// далее пропускаем, если есть
// fseek ($handle, 0, SEEK_CUR); // с текущего положения указателя
fseek ($handle, 3); // или с начала файла
}
// для получения заголовка, в котором как правило перечислены имена полей
$header_in_file = fgetcsv($handle, 0, ";"); // преобразуем первую строку в массив
// Или читаем весь файл
/*
while (!feof($handle)) {
$data[] = fgetcsv($handle, 0, ";",'"');
}
*/
}
Спустя 4 часа, 18 минут, 12 секунд (28.03.2012 - 17:37) twin написал(а):
_____________
Меньше кода - меньше багов ©