Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сопоставление информации из двух текстовых файлов
 
 автор: vlad3012   (10.07.2012 в 22:56)   письмо автору
 
 

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

<?php
$fp
fopen("1.txt""r");
$fp2 fopen("2.txt","r");
$i1=0;
$i2=0;
$i3=0;
while (!
feof($fp))
{
$pat fgets($fp);
while (!
feof($fp2))
{
$str fgets($fp2);
if (
preg_match("/".$pat."/""".$str."")=="true")
{
$res[$i3]= $str;
$i3++;
}
}
    }
   
$i4=0;
  while (
$i4<=10)
  {
  echo 
"$res[$i4]<br>";
  
$i4++;
  }
   
?>



По идее код должен работать (на основе того, что я вычитал в инете),
но он просто выводит первых 11 записей из второго файла (2.txt)
Пожалуйста, покажите мне что я делаю не так и в чем ошибка..

  Ответить  
 
 автор: cheops   (11.07.2012 в 07:53)   письмо автору
 
   для: vlad3012   (10.07.2012 в 22:56)
 

Насколько велики файлы? Нельзя их содержимое загнать в массивы?

  Ответить  
 
 автор: vlad3012   (11.07.2012 в 12:01)   письмо автору
 
   для: cheops   (11.07.2012 в 07:53)
 

массивами пробовал, тоже не хочет, я уже все что знаю перепробовал..
Фвйлы большеватые, первый (1.txt) - 600кб, 2й (2.txt) - 2мб..

  Ответить  
 
 автор: cheops   (11.07.2012 в 16:42)   письмо автору
 
   для: vlad3012   (11.07.2012 в 12:01)
 

Небольшой кусочек того и другого файла прикрепите, чтобы можно было по-экспериментировать.

  Ответить  
 
 автор: vlad3012   (11.07.2012 в 17:43)   письмо автору
8.7 Кб
 
   для: cheops   (11.07.2012 в 16:42)
 

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

  Ответить  
 
 автор: vlad3012   (11.07.2012 в 17:51)   письмо автору
 
   для: vlad3012   (11.07.2012 в 17:43)
 

файл 2

  Ответить  
 
 автор: cheops   (12.07.2012 в 16:10)   письмо автору
 
   для: vlad3012   (10.07.2012 в 22:56)
 

Можно начать отталкиваться от следующего скрипта
<?php 
  $fst 
"fst.txt";
  
$snd "snd.txt";
  
$names file($fst);
  
$content file_get_contents($snd);
  
$result = array();
  for(
$i 0$i count($names); $i++)
  {
    
$names[$i] = trim($names[$i]);
    
$pattern "|".preg_quote($names[$i])."\s+(\S+@\S+)\s|";
    if(
preg_match($pattern$lines[$i], $out))
    {
      
$result[$name] = $out[1];
      echo 
$name."<br />";
    }
  }
  echo 
"<pre>";
  
print_r($result);
  echo 
"</pre>";
?>

  Ответить  
 
 автор: vlad3012   (12.07.2012 в 21:19)   письмо автору
 
   для: cheops   (12.07.2012 в 16:10)
 

Большое спасибо, буду пробовать)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования