Soul's Buyer
С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740
|
Добавлено: 12/05/12 в 16:19 |
Автор не онлайн, а сам я блять боюсь накосячить и потом откатывацо с бекапа ...
Код:
Код: |
<?php
$base_file = $_SERVER['DOCUMENT_ROOT'].'/porn/data/1_base.dat';
$testtable_file = $_SERVER['DOCUMENT_ROOT'].'/porn/data/1_testable.dat';
if (false == file_exists($testtable_file)) {
print 'Cannot find '.$testtable_file;
die();
}
if (false == file_exists($base_file)) {
print 'Cannot find '.$base_file;
die();
}
$size = filesize($testtable_file);
if ($size > 5) {
$file_content = file($testtable_file);
unset($file_content[0]);
$content = implode("", $file_content);
copy($base_file, $base_file.'.'.time());
$fp = fopen($base_file, 'a');
if (!$fp) {
print "Cannot open file $base_file for writing.";
die();
}
fwrite($fp, $content);
fclose($fp);
file_put_contents($testtable_file,null);
print "Two files joined.";
} else {
print "No action required";
}
?>
|
Ну понятно, что из файла 1_testable переносит содержимое в файл 1_base.
Код для случая, когда файлов этих только два, они за номером 1.
Сейчас этих файлов 100, т.е. надо в верхних переменных циклом плюсить по еденичке сто раз, в диапазоне 1-100, т.е. из файла 1_testable.dat мувить всё в 1_base.dat, а из файла 74_testable.dat мувить всё в 74_base.dat, например. Короче данный код надо выполнить 100 раз, каждый раз прибавляя 1 к переменным вверху.
Подскажите, как добавить этот цикл. Желательно для диапазона ввести переменную, т.е. скажем если переменная вписана 100 - будет диапазон 1-100 в цикле, если переменная 50 - будет 1-50.
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 12/05/12 в 16:35 |
Код: |
$my_param = 100; // ставь скоко нада.
for ($i=0; $i<=$my_param; ++$i) // от 1 до нужного тебе числа.
{
$base_file = $_SERVER['DOCUMENT_ROOT'].'/porn/data/'.$i.'_base.dat';
$testtable_file = $_SERVER['DOCUMENT_ROOT'].'/porn/data/'.$i.'_testable.dat';
if (!file_exists($testtable_file)) { // так попроще ))
print 'Cannot find '.$testtable_file;
die();
}
if (!file_exists($base_file)) {
print 'Cannot find '.$base_file;
die();
}
$size = filesize($testtable_file);
if ($size > 5) {
$file_content = file($testtable_file);
unset($file_content[0]);
$content = implode("", $file_content);
copy($base_file, $base_file.'.'.time());
$fp = fopen($base_file, 'a');
if (!$fp) {
print "Cannot open file $base_file for writing.";
die();
}
fwrite($fp, $content);
fclose($fp);
file_put_contents($testtable_file,null);
print "Two files joined.";
} else {
print "No action required";
}
}
|
|
|
|
|
Soul's Buyer
С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740
|
Добавлено: 12/05/12 в 16:44 |
Спасибо, щас затестируем )
Но $i=0 это конечно эпик фейл на тему "программисты считают с нуля"
|
|
|
|
Soul's Buyer
С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740
|
Добавлено: 12/05/12 в 17:04 |
Ailk: Спасибо, работает! Ну точно гуру
|
|
|
|
Soul's Buyer
С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740
|
Добавлено: 12/05/12 в 17:24 |
Вот, ещё тема есть
Есть некий код:
Код: |
<?php
require("./admin/config.php");
require_once($setup['files_path']."admin/fun.inc.php");
$calc_time = FileReadLine($setup['files_path']."data/calctime.dat");
if(mktime() - $calc_time > $setup['update_time'])
{FileWrite($setup['files_path']."data/calctime.dat",mktime());
include($setup['files_path']."calculate.php");
calculate();}$graber_time = FileReadLine($setup['files_path']."data/grabertime.dat");
if(mktime() - $graber_time > $setup['grabing_period']) {FileWrite($setup['files_path']."data/grabertime.dat",mktime());
include("parser.php");
include("graber.php");}
?>
|
выполняется он по крону раз в минуту. Файлы с функциями этими (parser, graber и т.д. зазенденные). Что мне надо ? Мне надо модифицировать этот файл таким образом, чтобы при каждом его вызове (не смотря ни на какие там математические блять вычисления и переменные) отработали только
include("parser.php");
include("graber.php");
эти две строчки. Остальное, которое calculate.php, мне не надо чтобы в нём отрабатывали. Я вобщем хочу отдельными кронами прописать этот модифицированный файл, грабер (последние эти две строчки чтоб работали только в нём), чтобы он несколько раз в минуту выполнялся, чтоб быстрее грабил. Просто вызов его из крона эффекта не даёт никакого. Просто прописывание крона несколько раз в минуту меня не устраивает, т.к. calculate этот нехило грузит всё и его много раз в минуту нехорошо выполнять, да и вычисления эти мешают, даже если прописать крон 6 раз в минуту - больше 3-х выполнить не даёт.
первый иф надо убрать нахуй, второй иф надо кастрировать, чтобы он выполнился полюбасу, как-то так ...
|
|
|
|
Soul's Buyer
С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740
|
Добавлено: 12/05/12 в 17:50 |
Код: | <?php
require("./admin/config.php");
require_once($setup['files_path']."admin/fun.inc.php");
$graber_time = FileReadLine($setup['files_path']."data/grabertime.dat");
FileWrite($setup['files_path']."data/grabertime.dat",mktime());
include("parser.php");
include("graber.php");
?> |
или есть ещё чё-то лишнее там ?
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 12/05/12 в 18:07 |
Woland писал: | Спасибо, щас затестируем )
Но $i=0 это конечно эпик фейл на тему "программисты считают с нуля" |
Ну, в последней части цикла for стоит сначала добавление инкремента, только потом выполнение, поэтому будет прописываться как нада на выводе ))
Касательно кода с граббером смари.
эта часть кода:
Код: |
$graber_time = FileReadLine($setup['files_path']."data/grabertime.dat"); // считывается последнее время обновления вероятно
if(mktime() - $graber_time > $setup['grabing_period']) // тут проверка прошедшего времени с последнего обновления по внутренним настройкам граббера твоего.
{ // собсна дальше запись времени текущего времени (для посл. проверок) и выполнение.
FileWrite($setup['files_path']."data/grabertime.dat",mktime());
include("parser.php");
include("graber.php");
}
|
запускает граббер по своему времени (которое видимо установлено в настройках граббера )) Надеюсь понял.
в итого получаем:
Код: |
require("./admin/config.php");
require_once($setup['files_path']."admin/fun.inc.php");
$graber_time = FileReadLine($setup['files_path']."data/grabertime.dat");
if(mktime() - $graber_time > $setup['grabing_period']) {FileWrite($setup['files_path']."data/grabertime.dat",mktime());
include("parser.php");
include("graber.php");}
|
Для граббера, и:
Код: |
require("./admin/config.php");
require_once($setup['files_path']."admin/fun.inc.php");
$calc_time = FileReadLine($setup['files_path']."data/calctime.dat");
if(mktime() - $calc_time > $setup['update_time'])
{
FileWrite($setup['files_path']."data/calctime.dat",mktime());
include($setup['files_path']."calculate.php");
calculate();
}
|
для калькуляции. Принцип тот же что и у граббера.
П.С.
Я не гуру, я тока учусь ))
|
|
|
|
Soul's Buyer
С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740
|
Добавлено: 12/05/12 в 18:26 |
Ailk: Не, надо $i=1; я просто с 0 запустил - оно написало, что нет нихуя такого файла и выпало из цикла А при 1 отработало нормательно.
|
|
|
|