Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Апдейт скрипта, спаривание функций 
:(
    Опции темы
Another
Дата 8.12.2006, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 17.6.2006

Репутация: нет
Всего: -2



Имеется скрипт генерации хтмл файлов по шаблону, но один минус: в каждой странице 
находится один и тот-же текст, а хотелось - бы чоб каждая страница была идеальной 
по содержанию контента. Как это сделать? Код ищет в шаблоне {ENTER}, заменяет 
его на текст и создаёт страницу.
Вот код:

Код

<?php


if ($_POST['generate']) {
generate();
}else {
main_form();
}

/* ********************** */

function generate() {
$p=array();
if ($_POST['tpl'] && $_POST['keywords']) {
$_POST['keywords']=ereg_replace("(\r\n|\r)","\n",$_POST['keywords']);
$keys=explode("\n",trim($_POST['keywords']));

/* create pages array */
for($i=0;$i<intval($_POST['count']);$i++) {
list($k,$v)=each($keys);
if (!$v) {
reset($keys);
list($k,$v)=each($keys);
}
if (in_array(trim($v),$p)) {
$v=trim($v).'_'.$i;
}
$p[]=trim($v);
}


/* prepare template */
$tpl=implode('',file('./tpl/'.$_POST['tpl']));

/* generate links */
reset($p);
while(list($k,$v)=each($p)) {
$name=str_replace(' ','_',$v);
$l.='<a href="'.trim($name).'.html">'.trim($v).'</a> ';
}

/* generate pages */
reset($p);
while(list($k,$v)=each($p)) {
$k++;
$name=trim(str_replace(' ','_',$v));

$tpl_out=str_replace('{TITLE}',$v,$tpl);
$tpl_out=str_replace('{KEYWORDS}',ereg_replace("(\r\n|\n|\r)","",implode(', ',$keys)),$tpl_out);
$tpl_out=str_replace('{DESC}',ereg_replace("(\r\n|\n|\r)","",implode(' ',$keys)),$tpl_out);
$tpl_out=str_replace('{LINK}',$l,$tpl_out);
$tpl_out=str_replace('{I}',$k,$tpl_out);
$tpl_out=str_replace('{ENTER}',trim($_POST['enter']),$tpl_out);

$fp=fopen('./out/'.$name.'.html','w');
fwrite($fp,$tpl_out);
fclose($fp);
print 'pages created -> '.$name.'.html<br>';
flush();
}
print '<font color="#FF0000">done.</font>';
}else {
print 'Sorry, but I need template and keywords <br>';
}
}

function main_form() {
?>
Help: (<a href="readme">russian</a>) <br><br>
<table width="400" border="0" cellspacing="2" cellpadding="0" align="center">
<form action="" method="post">
<tr>
<td>Pages count:</td>
<td><input type="text" name="count" size="2" maxlength="2" value="5"></td>
</tr>
<tr>
<td>Template:</td>
<?php
$a=array();
if ($handle = opendir('./tpl')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && is_file('./tpl/'.$file)) {
$a[]=$file;
}
}
closedir($handle);
}
?>
<td><select name="tpl">
<?php while(list($k,$v)=each($a)) {?>
<option value="<?php print $v;?>"><?php print $v;?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td>Enter page:</td>
<td><input type="text" name="enter" size="40" value="http://"></td>
</tr>
<tr>
<td>Keywords:</td>
<td>
<textarea cols="30" rows="5" name="keywords">
Слова
</textarea>
</td>
</tr>
<tr><td colspan="2"><input type="submit" name="generate" value="Generate pages"></td></tr>
</form>
</table>
<?php
}

?>

Вот нарыл код создания файлов с текстом из базы, но как их соединить никак не могу понять.  
Код

$row = explode(" ",implode(" ",file("text.txt")));

echo "Всего слов: ".count($row)."<br><br>";
for($i=0; $i<count($row); $i=$i+10)
{
  $out = implode(" ",array_slice($row, $i, 10));

  $filename = "$i.txt";

   if (!$handle = fopen($filename, 'a')) {
       echo "Не могу открыть файл ($filename)<br>";
       exit;
   }
   if (fwrite($handle, $out) === FALSE) {
       echo "Не могу произвести запись в файл ($filename)<br>";
       exit;
   }

   echo "Записали ($out) в файл ($filename)<br>";

   fclose($handle);

}

 smile 

Это сообщение отредактировал(а) Another - 8.12.2006, 21:26
PM MAIL   Вверх
szz
Дата 9.12.2006, 04:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Так! Дублируете вопросы. Модератор подзатыльник даст.


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.