Проконсультируйте по PHP плиз

krek753
На сайте с 15.12.2008
Offline
104
386

Написал скрипт, удаляющий дубли строк из файла, но эта зараза не хочет удалять первые и последние строки. т.е. в начале остается 2 дубля и в конце. Подскажите в чем проблема, уже второй день ковыряю.

<?php  

$filename = @file("direction.txt");
if (!$filename) die('Неверный файл !');
foreach($filename as $val){
$arr[] = trim($val);
}
foreach (array_unique($arr) as $id) {

$fpf = fopen ('direction2.txt', "a+");
fwrite ($fpf, "$id\r\n");
fclose ($fpf);
}
?>
LEOnidUKG
На сайте с 25.11.2006
Offline
1776
#1

Ой короче.

$filename = @file("direction.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

if (!$filename) die('Неверный файл !');

$filename=array_unique($filename);

file_put_contents('direction2.txt',implode($filename,"\r\n"));

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
дани мапов
На сайте с 06.09.2012
Offline
204
#2

Код рабочий, разве что в начале вставить $arr = array();, прикрепите текстовый файл.

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
krek753
На сайте с 15.12.2008
Offline
104
#3
LEOnidUKG:
Ой короче.


$filename = @file("direction.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (!$filename) die('Неверный файл !');
$filename=array_unique($filename);
file_put_contents('direction2.txt',implode($filename,"\r\n"));

Все равно оставляет дубли в начале

---------- Добавлено 12.07.2014 в 12:14 ----------

дани мапов:
Код рабочий, разве что в начале вставить $arr = array();, прикрепите текстовый файл.

да любой фаел, например вот так

1

1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
4
4
4
4


---------- Добавлено 12.07.2014 в 12:17 ----------

Почему он нулевую строку не берет непонятно
LEOnidUKG
На сайте с 25.11.2006
Offline
1776
#4

Запустил, ничего не оставляет. Никаких дублей.

Удалите ваши файлы выходные, возможно в них проблема.

Или если на серваке выполняете то права на файл выставите, чтобы скрипт записывал.

krek753
На сайте с 15.12.2008
Offline
104
#5
LEOnidUKG:
Запустил, ничего не оставляет. Никаких дублей.

Удалите ваши файлы выходные, возможно в них проблема.
Или если на серваке выполняете то права на файл выставите, чтобы скрипт записывал.

Уже и на локалке запустил, всеравно оставляет

1

1

2

3

4

а если в исходном поставить пустую строку сверху, то все норм

LEOnidUKG
На сайте с 25.11.2006
Offline
1776
#6

Ну у вас чудеса. Что теперь делать. Наверное у вас PHP с какой-то особенной приблудой.

У вас входной файл точно эти цифры или всё же нет? Какая кодировка файла?

krek753
На сайте с 15.12.2008
Offline
104
#7
LEOnidUKG:
Ну у вас чудеса. Что теперь делать. Наверное у вас PHP с какой-то особенной приблудой.

У вас входной файл точно эти цифры или всё же нет? Какая кодировка файла?

Вот все в файле

zip del.zip
LEOnidUKG
На сайте с 25.11.2006
Offline
1776
#8

ох ёмаё.

Файлы сохраните в utf-8 без BOM и приучайтесь именно в этом формате делать.

krek753
На сайте с 15.12.2008
Offline
104
#9
LEOnidUKG:
ох ёмаё.

Файлы сохраните в utf-8 без BOM и приучайтесь именно в этом формате делать.

Спасибо) обыно по умолчанию такая кодировка стоит:)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий