[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вот такой БООЛЬШОЙ вопрос
Анатолий
Вот написал скрипт, точнее несколько.
При запуске скрипта цикл выполняется 1 раз, и все!!! Что не так???
Файл 1 :
<?php
for ($i=0; $i<10; $i++)
{
include "delstr.php";
include "razdel2.php";
include "gendat.php";
include "dopismain.php";
}

Файл delstr.php:
<?php
$num_stroka = 7; //Удалим 7 строку из файла
$file = file("gendat.php"); // Считываем весь файл в массив
for($i = 0; $i < sizeof($file); $i++)
if($i == $num_stroka) unset($file[$i]);
$fp = fopen("gendat.php", "w");
fputs($fp, implode("", $file));
fclose($fp);
?>

Файл razdel2.php:
<?php 
$sl = file('ancorrzd.txt');
$sm = $sl[array_rand($sl, 1)];
$datam = $sm;
$file = fopen ("rzd.txt","w");
$str = "$datam";
fputs ( $file, $str);
fclose ($file);
$dataC = trim(file_get_contents ("rzd.txt"));
$data="\$dataCata='$dataC';";
$file = 'gendat.php';
$array=file( $file );
$array[7]= $data; //строка в которой нужно изменить значение $data
file_put_contents( $file, $array );

?>
Файл gendat.php:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
ini_set('session.auto_start', '1');
//ini_set('upload_tmp_dir', 'c:\tmp');
set_time_limit(120);
@session_start();
$dataCata='xfgjcfyi';
$txtFile = 'result.txt'; // файл с текстом
$ancorFile = 'ancor.txt'; // файл с заголовками
$tplFile = 'template.txt'; // файл шаблона .dat файлов
$mainTplFile= 'maintemplate.txt'; // Шаблон файла со ссылками
$datDir = "articles/$dataCata"; // директория для .dat файлов
$datExt = 'dat'; // расширение .dat файлов
$mainFile = 'main.dat'; // Файл со ссылками на .dat файлы
$srcCharset = 'cp1251'; // Кодировка исходных файлов
$destCharset = 'cp1251'; // Кодировка файлов на выходе
$scriptCharset = 'utf-8'; // Кодировка скрипта
$blockLength = 4000; // Максимальный размер блока в байтах из файла с текстом
$file = fopen ("engine/menu.php","a");
$str = "<li><a href=\"/$dataCata/\">$dataCata</a></li>";
if ( !$file )
{
echo("Ошибка открытия файла");
}
else
{
fputs ( $file, $str);
}
fclose ($file);
if ($srcCharset == 'utf-8') $blockLength *= 2;
$blockLength = $blockLength % 2 > 0 ? $blockLength+1 : $blockLength;
if ( !is_dir($datDir) ) mkdir($datDir, 0777, true);
$hMain = NULL;
if ( !(@$hMain = fopen($mainFile, 'w+')) ) die("Невозможно создать файл $mainFile<br/>\b");
$hText = fopen($txtFile, 'r');
$ancors = explode("\n", $srcCharset == $scriptCharset ? file_get_contents($ancorFile) : iconv($srcCharset, $scriptCharset, file_get_contents($ancorFile)));
$template = $srcCharset == $scriptCharset ? file_get_contents($tplFile, 'r') : iconv( $srcCharset, $scriptCharset, file_get_contents($tplFile, 'r') ); // читаем шаблон
$content = '';
while ($content = fread($hText, $blockLength)) {
$fname = genName();
if (@$hDat = fopen("$datDir/$fname.$datExt", 'w')) {
$ancor = trim($ancors[rand(0, count($ancors)-1)]);
$content = $srcCharset == $scriptCharset ? trim($content) : iconv($srcCharset, $scriptCharset, trim($content));
// Генерим dat файлы по шаблону
$thisTpl = preg_replace("/(<!--.*?Kan_title.*?-->).*?(<!--.*?Kan_title.*?-->)/uism", "$1\n$ancor\n$2", $template);
$thisTpl = preg_replace("/(<!--.*?Kan_content.*?-->).*?(<!--.*?Kan_content.*?-->)/uism", "$1\n$content\n$2", $thisTpl);
$thisTpl = $scriptCharset == $destCharset ? $thisTpl : iconv( $scriptCharset, $destCharset, $thisTpl );
if (fwrite($hDat, $thisTpl)) {
echo "Файл $dataCata/$fname.$datExt записан<br/>\n";
$html = "
<loc><a href=
\"/$dataCata/$fname.html\">$ancor</a></loc>\n";
fwrite($hMain, iconv($scriptCharset, $destCharset, $html));
} else { echo "Ошибка записи в файл $dataCata/$fname.$datExt<br/>\n"; }
}
else {
echo "Не могу записать в файл $dataCata/$fname.$datExt<br/>\n";
}
}

// Генерация уникального имени
function genName() {
return substr(md5(uniqid(rand(), true)), 0, rand(7, 13));
}
?>

Файл dopismain.php:
<?
if (copy('main.dat', 'main0.dat'))
{ echo "Копирование успешно выполнено"; }
else
{ echo "Ошибка при копировании"; } // Скопировали маин дат, сохранили данные в маин 0
$file = fopen ("main.dat","w+");
$str = '<!-- Kan_title -->';
fputs ( $file, $str);
fclose ($file); // Вписали в пустой документ верх
$file = fopen ("main.dat","a");
$str = $dataCata; // Вписали переменную
fputs ( $file, $str);
fclose ($file);
$file = fopen ("main.dat","a");
$str = '<!-- Kan_title -->
<!-- Kan_content -->'
;
fputs ( $file, $str);
fclose ($file);
// Начинаем записывать линки в маин дат и текст
for ($i=0; $i<4; $i++)
{
include "genlink.php";
include "randstr.php";
}
$file = fopen ("main.dat","a"); //Дописываем конец файла
$str = '<br><!-- Kan_content -->
<!-- Kan_myinclude -->
main<!-- Kan_myinclude -->
<!-- Kan_description -->
<!-- Kan_description -->
<!-- Kan_keywords -->
<!-- Kan_keywords -->'
;
fputs ( $file, $str);
fclose ($file);
$source = 'main.dat';
$dest = "articles/$dataCata/main.dat";
if(!copy($source, $dest)) {
echo "Ошибка копирования файла $source...<br />\n";
}
?>




Спустя 3 минуты, 42 секунды (12.07.2011 - 13:46) m4a1fox написал(а):
Анатолий
Используйте bb-теги.

Спустя 1 час, 12 минут, 55 секунд (12.07.2011 - 14:59) kristall написал(а):
Ты же переопределяешь $i внутри этого аццкого цикла.

Спустя 9 минут, 26 секунд (12.07.2011 - 15:08) YVSIK написал(а):
Анатолий вот твоя тема
Цитата
Даже не знаю как назвать

вот )))
а начинать надо с порядка в написании
как только порядок всё , легче мона понять
что сам сотворил )))
а вот тут на форуме такой порядок ,
надо написать так чтоб вас поняли ,
в смысле оформить свой кот
как по правилам положено
я вообше читать не хочу подобное ( творение кода )
чтоб всё было красиво и понятно исползуй ВВ-теги
это такие кнопочки на верху редактора
попробуй мсамому будет удобней с кодом работать )))

и
Цитата
Вот такой БООЛЬШОЙ вопрос
превратится в маленький ответ даже сами поймете что надо и где ошибки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.