Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярка по относительным признакам

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: помогите составить правильно регулярку поиска по признакам с выводом в отдельный файл
tipagraf
Отправлено: 19 Апреля, 2011 - 09:52:58
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




Привет,
Знатоки регулярок , помогите составить правильно регулярку
чет не получается ТЗ такое с файла выдернуть определенные фразы,(каждая уникальна) которые можно определить только по относительным признакам пример с файла:
Цитата:
Цитата:
файл:in.txt
//содержит строки

watch/t6cmjGwh/Interracial-Couch -Bang.html
watch/QXMxsxVJ/Ready-For-Eve.html
watch/n3TtKN1B/Spit-And-Plowed.h tml
watch/rY6RBPXV/Stuffed-In-The-Rump.html
watch/DfmP9q7W/Double-Stuffed-B- part-1.html
watch/StVyE3KY/Reverse-And-Suck-part-2.html

// и т.д.

хотел реализовать таким
кодом:
Цитата:
Цитата:
<?php
$file=file('in.txt');
$fp=fopen('out.txt');
$str = preg_grep("/(?<=\/)(a-zA-Z0-9)*(?!\.\html{,4})$",$file);
?>

относительные признаки
Цитата:
"/" и ".html"

чтобы на выходе в out.txt была выборка только из фраз которые стоят между "/" и ".html", без "/" и ".html".
кто разбирается хорошо в регулярках можете помочь...

ЗЫ хотелось бы пояснить свою цель, мне нужно чтобы было реализованно в виде отдельного скрипт файла который бы мог обрабатывать на локальном сервере данные в одних файлах.тхт а полученные результаты выводил в другой файл.тхт

(Отредактировано автором: 19 Апреля, 2011 - 19:34:18)

 
 Top
Uchkuma
Отправлено: 19 Апреля, 2011 - 11:02:00
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Я думаю регулярки здесь излишни.
PHP:
скопировать код в буфер обмена
  1. $file=file('in.txt');
  2.  
  3. $outstr = array();
  4. foreach($file as $str){
  5. $strinfo = pathinfo($str);
  6. if($strinfo['extension']=='html') $outstr[] = substr($strinfo['basename'], 0, -5);
  7. }
  8.  
  9. $out = file_put_contents('out.txt', $outstr);
 
 Top
tipagraf
Отправлено: 19 Апреля, 2011 - 12:09:09
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




Uchkuma
код возможно и рабочий, только у меня он не сработал, я пхп стал изучать только 4 дня назад, и еще пока не смог полностью разобраться в языке. По этому прошу, если не трудно можете выложить полную конструкцию кода для наглядности на примере ТЗ.
Спасибо за терпение
 
 Top
SAD
Отправлено: 19 Апреля, 2011 - 12:31:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




пусть $line - это строка из файла

(Отредактировано автором: 19 Апреля, 2011 - 12:32:47)

 
 Top
tipagraf
Отправлено: 19 Апреля, 2011 - 14:07:33
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




Спасиб Магистрам за участие.
только
вообщем не соображу как пользоваться теми вариациями что вы предложили...
знаний в пхп пока маловато..(
Прошу откликнитесь есть ли еще, кто знает как попроще и доступнее поступить в решении Тз , поделитесь плиз конструкцией кода

ЗЫ если можно, так сказать обьяснить на пальцах.

(Отредактировано автором: 19 Апреля, 2011 - 16:00:52)

 
 Top
tipagraf
Отправлено: 19 Апреля, 2011 - 19:00:18
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




Вот дали код: //Только он выдает один всего лишь результат, из списка
Цитата:
<?php
$file=file('in.txt');
$fp=fopen('out.txt','w');
for($i=0;$i<count($file);$i++){
preg_match('/watch\/(.*?)\.html/is',$file[$i],$out);
fwrite($fp,$out[1]."\n");
}
fclose($fp);
?>

может кто его подправить чтобы обрабатывал данные с файла in.txt и выдавал сразу все результаты которые будут найдены в файле in.txt

(Отредактировано автором: 19 Апреля, 2011 - 19:30:59)

 
 Top
SAD
Отправлено: 19 Апреля, 2011 - 19:36:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




капец

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file=file('in.txt');
  3. $fp=fopen('out.txt','w');
  4. for($i=0;$i<count($file);$i++){
  5. $line = current(explode('.', end(explode('/', $file[$i]))));
  6. fwrite($fp,$line."\n");
  7. }
  8. fclose($fp);
  9. ?>

если и это до вас не дойдет, то извините
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $file=file_get_contents('in.txt');
  2. preg_match_all('/watch\/(.*?)\.html/is',$file,$out);
  3. $new_file = file_put_contents('out.txt',implode("\n", $out[1]));


последний вариант лучше
и только не говорите, что ничего не вышло, проверил у себя - все работает

(Отредактировано автором: 19 Апреля, 2011 - 19:57:13)

 
 Top
Uchkuma
Отправлено: 19 Апреля, 2011 - 20:10:22
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




tipagraf пишет:
только у меня он не сработал
"Не сработал" - это не аргумент. Если вы хотите получать помощь на форуме, говорите, что делаете и что получается.

Обновил свой пост: http://forum.php.su/topic.php?fo...00120#1303200120
 
 Top
SAD
Отправлено: 19 Апреля, 2011 - 20:11:11
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Uchkuma, мой второй пример короче и понятнее

(Отредактировано автором: 19 Апреля, 2011 - 20:11:46)

 
 Top
tipagraf
Отправлено: 19 Апреля, 2011 - 20:26:03
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




SAD пишет:
Uchkuma, мой второй пример короче и понятнее

SAD
Большое Человеческое Спасибо Да, да ваш пример кода сработал на конецто на вертриго по крайней мере у меня как мне надо.
Уж извините, жизнь заставила изучать пхп, как и указывал только 4 день разбираюсь с полного нуля ...
Большой Респект Uchkuma и всем кто хоть как то помогал, Спасибо братцы за терпение. ))))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB