нубу подскажите, по скрипту простому)

так он читает несколько символов из файла, а нужно целую строку, прочел и записал в общий файл

запутался что именно надо:) если нужно читать файл по строчкам, то лучше всего его прочитать в массив и потом пройтись в цикле:

Если необходимо записать содержимое файла в массив, применяется функция file:

array file (string filename [, int use_include_path])

Функция считывает файл с именем filename и возвращает массив, каждый элемент которого соответствует строке в прочитанном файле. В следующем примере с помощью функции читается файл, информация из которого затем выводится в браузер.
PHP:
<?
  $file_array = file("file.txt");
  if(!$file_array)
  {
    echo("Ошибка открытия файла");
  }
  else
  {
    for($i=0; $i < count($file_array); $i++)
    {
      printf("%s<br>", $file_array[$i]);
    }
  }
?>

Эта функция удобна также тем, что с ее помощью можно легко подсчитать количество строк в файле:
PHP:
<?
  $file_array =  file ("file.txt");
  if(!$file_array)
  {
    echo("Ошибка открытия файла");
  }
  else
  {
    $num_str =  count($file_array); 
    echo($num_str);
  }
?>

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

PHP:
<?php
//
set_time_limit(0);
$h = fopen("id.txt","a+");
$id1 = fopen("id1.log","r");//-c этим проблема
while(!feof($h))
{ $i=fgets($h, 1024);

$res = file_get_contents("http://".$i."&");
{
preg_match('', $res, $m);   
preg_match('', $res, $m2); 
$ggg1 = (isset($m2[1])) ? $m2[1]." " : '';
$ggg55 = (isset($m[1])) ? $m[1]." " : '';
file_put_contents("1.log", trim($ggg1)."   >", FILE_APPEND);
file_put_contents("1.log", trim($ggg55)."   >", FILE_APPEND);
file_put_contents("1.log", $id1."\r\n", FILE_APPEND);  //-c этим проблема
}
 
а без массива нельзя?
PHP:
<?php
//
set_time_limit(0);
$h = fopen("id.txt","a+");
$id1 = fopen("id1.log","r");//-c этим проблема
while(!feof($h))
{ $i=fgets($h, 1024);
$res = file_get_contents("http://".$i."&");
{
preg_match('', $res, $m);   
preg_match('', $res, $m2); 
$ggg1 = (isset($m2[1])) ? $m2[1]." " : '';
$ggg55 = (isset($m[1])) ? $m[1]." " : '';
file_put_contents("1.log", trim($ggg1)."   >", FILE_APPEND);
file_put_contents("1.log", trim($ggg55)."   >", FILE_APPEND);
file_put_contents("1.log", $id1."\r\n", FILE_APPEND);  //-c этим проблема
}
PHP:
$id1 = fopen("id1.log","r");
//замени на
$id1 = file_get_contents('id1.log');
 
заменил, так он всё содержимое файла берет id1.log и всё содержимое этого файла в общий файл пишет..
а нужно чтобы только 1 строка писалась, и так по кругу.. как тут file_put_contents("1.log", trim($ggg1)." >", FILE_APPEND);
 
заменил, так он всё содержимое файла берет id1.log и всё содержимое этого файла в общий файл пишет..
а нужно чтобы только 1 строка писалась, и так по кругу.. как тут file_put_contents("1.log", trim($ggg1)." >", FILE_APPEND);

вообще ни хрена не пойму что тебе нужно:) дай лучше пример файлов. на готовом примере проще разобраться. можно в личку...
 
вообще ни хрена не пойму что тебе нужно:) дай лучше пример файлов. на готовом примере проще разобраться. можно в личку...
что именно непонятного?
вот полный листинг моего текущего скрипта

PHP:
<?php
//
set_time_limit(0);
$h = fopen("id.txt","a+");
//$id1 = fopen("id1.log","r");//-c этим проблема
while(!feof($h))
{ $i=fgets($h, 1024);
$res = file_get_contents("http://".$i."&");
{
preg_match('', $res, $m);   
preg_match('', $res, $m2); 
$ggg1 = (isset($m2[1])) ? $m2[1]." " : '';
$ggg55 = (isset($m[1])) ? $m[1]." " : '';
file_put_contents("1.log", trim($ggg1)."   >", FILE_APPEND);
file_put_contents("1.log", trim($ggg55)."   >", FILE_APPEND);
//file_put_contents("1.log", $id1."\r\n", FILE_APPEND);  //-c этим проблема
}
то что закомментировано - этого изначально небыло.

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

Мне понадобилось дописывать ТРЕТЬЕ значение в общий файл.
Третье значение - в виде кучи строчек, эти кучи строчек я вложил в другой файл, и дописал то, что закомментировано выше.
На выходе в общий файл должно было записываться три значения:
$ggg1 $ggg55 $id1( 1 строчка из файла)
И так по кругу, $ggg1 $ggg55 $id1( 2-ая строчка из файла)..
$ggg1 $ggg55 $id1( 3-ая строчка из файла)..
 
что именно непонятного?
вот полный листинг моего текущего скрипта
PHP:
<?php
//
set_time_limit(0);
$h = fopen("id.txt","a+");
//$id1 = fopen("id1.log","r");//-c этим проблема
while(!feof($h))
{ $i=fgets($h, 1024);
$res = file_get_contents("http://".$i."&");
{
preg_match('', $res, $m);   
preg_match('', $res, $m2); 
$ggg1 = (isset($m2[1])) ? $m2[1]." " : '';
$ggg55 = (isset($m[1])) ? $m[1]." " : '';
file_put_contents("1.log", trim($ggg1)."   >", FILE_APPEND);
file_put_contents("1.log", trim($ggg55)."   >", FILE_APPEND);
//file_put_contents("1.log", $id1."\r\n", FILE_APPEND);  //-c этим проблема
}
то что закомментировано - этого изначально небыло.
скрипт берет построчно значения из файла, подставляет их в урл, парсит, и записывает два значения в общий файл..
Мне понадобилось дописывать ТРЕТЬЕ значение в общий файл.
Третье значение - в виде кучи строчек, эти кучи строчек я вложил в другой файл, и дописал то, что закомментировано выше.
На выходе в общий файл должно было записываться три значения:
$ggg1 $ggg55 $id1( 1 строчка из файла)
И так по кругу, $ggg1 $ggg55 $id1( 2-ая строчка из файла)..
$ggg1 $ggg55 $id1( 3-ая строчка из файла)..
PHP:
$file = file('id.txt'); //результат массив
$id1 = file('id1.log'); //результат массив
foreach($file as $num=>$line){
    $res = file_get_contents("http://".$line); //получаем html
    preg_match('', $res, $m);   
    preg_match('', $res, $m2); 
    $ggg1 = (isset($m2[1])) ? $m2[1]." " : '';
    $ggg55 = (isset($m[1])) ? $m[1]." " : '';
    file_put_contents("1.log", trim($ggg1)."  >  ".trim($ggg55)."  >  ".$id1[$num]."\r\n");
}
 
  • Нравится
Реакции: doxx
А в остальных случаях пункт 4 выполняется?
И еще не пойму зачем писать трижды в файл, можно ведь так.
PHP:
file_put_contents("www.log", trim($slovo[0])."   >".trim($Start)."   >".trim($iii)."\r\n", FILE_APPEND);
 
А в остальных случаях пункт 4 выполняется?
И еще не пойму зачем писать трижды в файл, можно ведь так.
PHP:
file_put_contents("www.log", trim($slovo[0])."   >".trim($Start)."   >".trim($iii)."\r\n", FILE_APPEND);
та хрен с ней с записью:confused: это для примера прост, он не парсит вообще, 1 урл проходит сохраняет, на остальных ничего не находит..
пункт 4 - нет, если найдена регулярка, то пишет , если регулярка по данному урлу не найдена, то не пишет, идёт дальше...
я же вот как бы и пытаюсь условие поставить, типа "если"
if (preg_match('')) найдена регулярка
- > запись в файл file_put_contents

иначе } else { ничего не делаем (echo "Вхождение не найдено." )
 
Назад
Сверху