|
|
|
| Здравствуйте! подскажите регулярное выражение, для того чтобы найти повторяющиеся строки в файле.
Есть файл txt файл, записи в нем:
http://site.ru/1111/file.zip
http://site.ru/18766/text.zip
http://site.ru/2777/yjygt.zip
http://site.ru/1111/file.zip
http://site.ru/12344/file666.zip
http://site.ru/1111/file.zip
http://site.ru/12345/5464.zip
http://site.ru/18766/text.zip
http://site.ru/99854/123.zip
|
Как видим
http://site.ru/1111/file.zip
http://site.ru/18766/text.zip
повторяется несколько раз, мне же нужно чтобы такие ссылки были только одни. При чем ссылки могут быть разными, и могут повторятся в файле. Все они имеют маску http://site.ru/*****/***.zip
Заранее спасибо за помощь, если решение проблемы вообще возможно! | |
|
|
|
|
|
|
|
для: demon666
(06.07.2007 в 23:28)
| | Тут нужно думать, но вот что на ум только пришло:
регулярка тут вроде то и не нужна. здесь нужно разобрать файл на строки и уже сравнивать эти строки. а вот каким образом уже сравнивать, тут методов можно много найти и нужно опять же думать. | |
|
|
|
|
|
|
|
для: demon666
(06.07.2007 в 23:28)
| | Тут будет удобно воспользоваться функцией array_unique()
<?php
$text = "............"; // проследите, чтобы в конце строк не было пробелов
$arr = array_unique(explode("\r\n", $text));
echo implode("\r\n", $arr);
|
Ну, а если интересно, рег. выражениями можно сделать, например, так:
while (preg_match("#(http://site\.ru/\S+/\S+\.zip)(.*)\\1#Us", $text))
$text = preg_replace("#(http://site\.ru/\S+/\S+\.zip)(.*)\s+\\1#Us", "$1$2", $text);
echo $text;
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(07.07.2007 в 18:19)
| | спасибо, буду знать! Просто в моем случае можно было поступить проще. т.к. ссылки записывались моим же скриптом....
$filename="file.txt";// Имя файла
$dr = fopen($filename, "r");// Читаем файл
$bufer = fread($dr, filesize($filename));// Данные заносим в переменную
fclose($dr);// Закрываем файл
$content = explode("\n",$bufer);// Удаляем перенос
if(!in_array($put,$content))// Проверяем на существование значения
{// Если такого значения нет - добавляем его в файл
$dr = fopen($filename, "a");// Открываем файл для записи
fwrite ($dr,$put."\n");// Записываем в файл значения
fclose($dr); // Закрываем файл
}
|
| |
|
|
|
|
|
|
|
для: demon666
(06.07.2007 в 23:28)
| |
for($h = fopen("file.txt", "rb"), $data=array(); !feof($h);)
$data[trim(fgets($h))] =1;
$data = array_keys($data);
print_r($data);
|
| |
|
|
|