Имеется скрипт генерации хтмл файлов по шаблону, но один минус: в каждой странице находится один и тот-же текст, а хотелось - бы чоб каждая страница была идеальной по содержанию контента. Как это сделать? Код ищет в шаблоне {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);
}
|
Это сообщение отредактировал(а) Another - 8.12.2006, 21:26
|