подскажите на php - Форум успешных вебмастеров - GoFuckBiz.com - Страница 2
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.1887
BTC/USD68066.1754
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 26.03.2013, 00:16
Start Post: подскажите на php 
  #11
ssoleg
Senior Member
 
Аватар для ssoleg
 
Регистрация: 26.01.2009
Адрес: Ленинград
Сообщений: 642
Бабло: $106689
По умолчанию

есть два файла, в одном слова, по одному на строчку, в другом много текста, надо взять каждое слово из первого файла и вывести строку из второго где содержится это слово.
ssoleg вне форума  
Старый 26.03.2013, 03:17   #12
oso
кодер
 
Аватар для oso
 
Регистрация: 21.01.2008
Сообщений: 315
Бабло: $69585
По умолчанию

Код:
<?php
$words = file('file_words.txt');
$txts  = file('file_texts.txt');
$words = array_map('rtrim',$words);
foreach($txts as $txt)
{
	foreach($words as $word)
	{
		if(stripos($txt,$word)!==false)
		{
			echo $txt;
			break;
		}
	}
}
только для небольших файлов
__________________
php скрипты от $25 Отзывы: 2013-2011, 2010, 2009. acя: 384 846 ноль два шесть
oso вне форума  
Старый 26.03.2013, 03:27   #13
Strikelol
Senior Member
 
Регистрация: 31.03.2011
Сообщений: 3,360
Бабло: $669045
По умолчанию

Цитата:
Сообщение от oso Посмотреть сообщение
только для небольших файлов
а что кошерно делать с большими? бить на нужные части system(), а потом работать с ними, записывать результаты в переменную и по достижении нужного размера выводить в файл?
Strikelol вне форума  
Старый 26.03.2013, 03:28   #14
sspy
главный злодей гофака
 
Аватар для sspy
 
Регистрация: 18.06.2007
Сообщений: 5,760
Бабло: $953838
По умолчанию

Цитата:
Сообщение от Strikelol Посмотреть сообщение
а что кошерно делать с большими? бить на нужные части system(), а потом работать с ними, записывать результаты в переменную и по достижении нужного размера выводить в файл?
нет. правильных варианта 2:
или построчно читать или увеличивать лимит памяти php.
__________________
sspy вне форума  
Старый 26.03.2013, 03:32   #15
oso
кодер
 
Аватар для oso
 
Регистрация: 21.01.2008
Сообщений: 315
Бабло: $69585
По умолчанию

В данном случае, скорее всего, кеев не так много и разумно их в памяти держать.
А для текста открыть через fopen и построчно читать его. Делить на части, в таком случае, не обязательно.
Если кеев тоже очень много, то их тоже построчно..

Результат лучше, конечно, не построчно писать, а блоками, да.
__________________
php скрипты от $25 Отзывы: 2013-2011, 2010, 2009. acя: 384 846 ноль два шесть
oso вне форума  
Старый 26.03.2013, 12:02   #16
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

на пайтоне кашерней ))

PHP код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

with open('my_file.txt') as words_file:
    for 
word in words_file:
        
with open('my_file_test.txt') as text_file:
            for 
line in text_file:
                if 
word.strip() in line:
                    print 
line
masolit вне форума  
Старый 26.03.2013, 12:06   #17
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Все равно быдлокод ) Уже сказали что файлы могут быть большими. Нужно построчно читать и засунуть это в функцию. Короче пофиг )))
Hector вне форума  
Старый 26.03.2013, 12:12   #18
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

Цитата:
Сообщение от Hector Посмотреть сообщение
Все равно быдлокод ) Уже сказали что файлы могут быть большими. Нужно построчно читать и засунуть это в функцию. Короче пофиг )))
ну тут как бы построчно идет итерация если чё ) и файло могут быть хоть терабайтными )
masolit вне форума  
Старый 26.03.2013, 12:18   #19
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

http://www.ibm.com/developerworks/li...php-readfiles/
Hector вне форума  
Старый 26.03.2013, 12:21   #20
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

Цитата:
Сообщение от Hector Посмотреть сообщение
ну если на быдлопыхе то да построчно таки нужно итерироваться ))) я дал пример на пайтоне какбы )
masolit вне форума  
Старый 26.03.2013, 12:30   #21
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

PHP код:
open(filename)
while 
True:
  
line f.readline()
  if 
not line: break
  
process(line)
f.close() 
В питоне не силен но это говорят построчное чтение.
Hector вне форума