![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
Удаляю строку из файла такой функцией
строки нужные удаляет, но в новом файле нет последней строки , вернее постоянно удаляет и последние 2 строки, как сделать чтоб корректно работало? -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
Или можно как то проще просто избавиться от ненужной строки? Заменив ее например на "" ?
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: 5 Всего: 13 |
функция может принимать массив,и если принимаемое значение массив она удалит все строки которые будут указанны
если принимаемое значение число то функция удалит одну эту строку
Добавлено @ 17:56 совет : не отвечай на своё сообщение первым, потому что когда глядишь на список тем ,темы с 0 ответов бросаются в глаза а когда 1 думаешь"опоздал,уже помогли"... |
|||
|
||||
| SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
americanets, беда Вашей ф-ции в следующем: число строк в массиве действительно уменьшилось на единицу, а индексы массива после места уделения не изменились. Поэтому при переборе массива циклом for до нового, уменьшенного количества элементов последний индекс не захватывается. Плюс, при error_reporting(E_ALL) будет показан notice по поводу несуществующего индекса на месте удаленной строки.
Обе эти проблемы решаются заменой цикла for на foreach.
Тоже можно... что-то в таком духе:
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
Спасибо , пробую
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
пишет Fatal error: Call to undefined function: file_put_contents()
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
americanets, PHP4? Эта ф-ция только для 5-й версии. Для 4-й замените на "традиционные" fopen + fputs|fwrite.
как-то так:
Хотя вообще, имхо, таким образом терзать .htaccess довольно рисковано, слишком легко нечаянно вызвать неустранимую (без вмешательства по FTP|SSH) 500-ю ошибку... Это сообщение отредактировал(а) SelenIT - 18.3.2007, 20:06 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
понятно, а как лучше?
делал так но не работает тоже
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
americanets, нужно учесть, что в результате file() в каждом элементе массива остаются еще символы перевода строки. Нужно либо удалить их оттуда (напр. с помощью array_map + rtrim), либо добавить к искомой строке (имхо, первый вариант аккуратнее и надежнее).
А функция Всемогущего, насколько я понимаю, "заточена" под удаление строки по номеру, а не по содержимому. Это сообщение отредактировал(а) SelenIT - 18.3.2007, 20:50 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
В искомую строку вроде добавил \n
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
americanets, а OC какая? Почему я и говорю - лучше из массива trim'ить...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |