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

Лучше используй -
Код:
file_put_contents("file.txt", $nik."\r\n", FILE_APPEND);
file_put_contents("file.txt", $i."\r\n", FILE_APPEND);

И еще вопрос, если в скрипте нет fclose, может ли из-за этого висеть в процессах пхп?
Скрипт я запускаю через cmd , но после закрытия окна, процесс остается.
Когда ты запускаешь скрипт через консоль, директива max_execution_time автоматом устанавливается в ноль(бесконечно) - поставь в начале скрипта
Код:
set_time_limit (30);
 
Лучше используй -
Код:
file_put_contents("file.txt", $nik."\r\n", FILE_APPEND);
file_put_contents("file.txt", $i."\r\n", FILE_APPEND);
не получается целостная строка как бы..
В файл на выходе пишет с лишними переносами строк.. ( как раз между этих двух переменных перенос вставляется)
Код:
file_put_contents("file.txt", $i, FILE_APPEND);
file_put_contents("file.txt", $nik, FILE_APPEND);

Добавлено через 22 минуты
Когда ты запускаешь скрипт через консоль, директива max_execution_time автоматом устанавливается в ноль(бесконечно) - поставь в начале скрипта
Код:
set_time_limit (30);
у меня в скрипте и стоит set_time_limit (0)
т.к. не знаю когда он выполнится.
но ведь по идее когда я вручную окно закрываю, с чего пхп процесс запущенный остается? скрипт же завершился до конца и интерпретатор пхп не используется больше
 
не получается целостная строка как бы..
Читал невнимательно - можно вот так через массив:
PHP:
function fwrite_arr($file, $list, $razd){
	$stroka = implode($razd, array_values($list))."\r\n";
	$ok=file_put_contents($file, $stroka, FILE_APPEND);
	return $ok;
}
$file = 'file.txt';
$data["nik"] = "John Smith";
$data["i"] = "55";
$res = fwrite_arr($file, $data, "=");
echo "В файл \"$file\" записано $res байт";

но ведь по идее когда я вручную окно закрываю, с чего пхп процесс запущенный остается?
А почему ты уверен что скрипт завершился? Может у тебя там цикл крутиться или рекурсия или cURL по редиректам бегает )))...
Ты без денвера на винде запускаешь скрипты?
 
  • Нравится
Реакции: doxx
Читал невнимательно - можно вот так через массив:
PHP:
function fwrite_arr($file, $list, $razd){
	$stroka = implode($razd, array_values($list))."\r\n";
	$ok=file_put_contents($file, $stroka, FILE_APPEND);
	return $ok;
}
$file = 'file.txt';
$data["nik"] = "John Smith";
$data["i"] = "55";
$res = fwrite_arr($file, $data, "=");
echo "В файл \"$file\" записано $res байт";
замороченно уже, мне не осилить это)

я добавил в общем trim в одну из переменных, и вроде без переносов сохраняет...

А почему ты уверен что скрипт завершился? Может у тебя там цикл крутиться или рекурсия или cURL по редиректам бегает )))...
Ты без денвера на винде запускаешь скрипты?
Уверен - ну как почему, вижу же что завершился, кончились адрес там например для парсинга в файле и всё скрипт останавливается, и в консоле становится написан текущий адрес папки, свободный для ввода команд..
установлен денвер, вроде как, но в общем-то да, я его не запускаю, чтобы лишние движения не делать
( скрипты в папку с денвером переносить потом адрес прописывать + лишние процессы)
Так проще как-то, сразу в консоле php script.php прописал и работает.
Единственное неудобство, что приходится все скрипты складировать в C:\WebServers\usr\bin
т.е. в ту папку , где php.exe ))))))))

И еще вопрос, вот вроде сделал, отчего зависит скорость работы скрипта? У меня есть скрипт чужой, ( тоже элементарный парсер, без курлов всяких и т.д. ) код на 100 строк.
он парсит ппц - 100 тысяч строк файла обрабатывает за
несколько минут.
У меня же вот парсер грубо говоря на 10 строчек, довольно медленная скорость, раза в 3 медленнее работает..
Отчего это зависит?
Парсер, опять же элементарный, идет запрос какой-то страницы сайта, и с этой страница парсится одно значение и сохраняется в файл. И Так по кругу, и все.
Слипов не стоит..
 
Единственное неудобство, что приходится все скрипты складировать в C:\WebServers\usr\bin
Вот оно чо)))
Это же редиректор, типа ярлыка для денвера
Запускай отсюда - C:\WebServers\usr\local\php.exe

Отчего это зависит?

Сложно ответить, не посмотрев код - скорость выполнения зависит от многих факторов(иногда даже от фазы луны :D), но в основном от оптимизации...

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

пытаюсь добавить, чтобы он построчно читал второй файл, и дописывал значения строк из этого второго файла в общий файл ..
Добавил строки:
$h = fopen("id1.txt","a+");
file_put_contents("obshiy-file.log", $id1."\r\n", FILE_APPEND);


В итоге в общий файл пишутся "Resource id #2", вместо значений...
Что не так?
 
Вопрос такой, имеется скрипт, который берет построчно значения из файла, подставляет их в урл, парсит , и записывает два значения в общий файл..
пытаюсь добавить, чтобы он построчно читал второй файл, и дописывал значения строк из этого второго файла в общий файл ..
Добавил строки:
$h = fopen("id1.txt","a+");
file_put_contents("obshiy-file.log", $id1."\r\n", FILE_APPEND);
В итоге в общий файл пишутся "Resource id #2", вместо значений...
Что не так?

покажи строку с присвоением значения $id1, есть подозрение что ты пытаешься записать строкой массив данных.
 
покажи строку с присвоением значения $id1, есть подозрение что ты пытаешься записать строкой массив данных.
опечатался, вот тут она
$id1 = fopen("id1.txt","a+");
file_put_contents("obshiy-file.log", $id1."\r\n", FILE_APPEND);
 
опечатался, вот тут она
$id1 = fopen("id1.txt","a+");
file_put_contents("obshiy-file.log", $id1."\r\n", FILE_APPEND);

В случае удачного открытия файла, функция fopen возвращает дескриптор файла, в случае неудачи - false. Дескриптор файла представляет собой указатель на открытый файл, который используется операционной системой для поддержки операций с этим файлом. Возвращенный функцией дескриптор файла необходимо затем указывать во всех функциях, которые в дальнейшем будут работать с этим файлом.

Прочитать строку из открытого файла можно с помощью функции fread:
string fread ( int file, int length )

Эта функция возвращает строку длиной length символов из файла с дескриптором file.

Пример (чтение из файла:(
<?
$file = fopen("c:/www/html/file.txt","r");
if(!file)
{
echo("Ошибка открытия файла");
}
else
{
$buff = fread ($file,100);
print $buff;
}
?>

Для чтения из файла можно также пользоваться функцией fgets:
... и т.д.

если нужно считывать построчно, то лучше воспользоваться функцией file
 
  • Нравится
Реакции: doxx
если нужно считывать построчно, то лучше воспользоваться функцией file
*** скрытое содержание ***
так он читает несколько символов из файла, а нужно целую строку, прочел и записал в общий файл,
пробовал, исходя из этого примера:

PHP:
$fd = fopen ("/tmp/inputfile.txt", "r");
while (!feof ($fd)) {
    $buffer = fgets($fd, 4096);
    echo $buffer;
}
fclose ($fd);
но т..к используется уже открытие файла другого, не получается... как это уже в существующий цикл поместить? так же нельзя while(!feof($h, $fd))
 
Назад
Сверху