как не нарушать порядок расположения строк html при генерации сайта на php

12
Бабайка
На сайте с 05.08.2010
Offline
135
1016

Всем привет!

собсно непонятно:

есть генератор сайта на php

подставляю html шаблон с прописанными макросами (взять текст из файла и подставить в шаблон)

после генерации все строки html док-та прописываются в одну строку.

как сделать так чтобы строки оставались в таком же положении как и в первичном html шаблоне?

D
На сайте с 01.12.2012
Offline
2
#1

Бабайка, я так понял, что у Вас удаляются символы перевода строк. Просто так этого происходить не должно. Вы где-то затираете их. Не взглянув на код нельзя ничего подсказать.

Бабайка
На сайте с 05.08.2010
Offline
135
#2
Desk:
Бабайка, я так понял, что у Вас удаляются символы перевода строк. Просто так этого происходить не должно. Вы где-то затираете их. Не взглянув на код нельзя ничего подсказать.

согласен.


<?php

/**
* @author Ololo
* @copyright 2012
*/
require ('simple_html_dom.php');
set_time_limit(0);
$filearray = glob("xml/*.xml");
echo "Was found ".count($filearray).'txt files<br>';
$cat = ceil(count($filearray)/50.0);
$string_cats = '<a href="index.html">1</a> ';
for($j = 2; $j <= $cat; $j++){
$string_cats.='<a href="cat_'.$j.'.html">'.$j.'</a> ';
}
var_dump($filearray);
//die;

$count = 1;

$html = new simple_html_dom();
$html = file_get_html('template.html');

//$index = new simple_html_dom();
$index = fopen('index.html', 'r');
//$index = file_get_html('index.html');
$index_html = fread($index, 100000);
$new_cats = $index_html;
$count_cat = 1;
$current_cat = ('html/index.html');


$sitemap = fopen('sitemap.html', 'r');
$sitemap_html = fread($sitemap, 100000);


foreach($filearray as $files_name){

$xml = simplexml_load_file($files_name,SimpleXMLElement,LIBXML_NOCDATA );
$my_post = array();


foreach ($xml as $key => $value) {
$my_post["$key"] = trim($value);

}
$b = $html -> find('#post', 0);
$b->outertext = $my_post['post'];
$b = $html -> find('#mytitle', 0);
$b->outertext = '<h2>'.$my_post['title'].'</h2>';
$b = $html -> find('title', 0);
$b->innertext = $my_post['title'];
$b = $html -> find('cats', 0);
$b->outertext = $string_cats;

$html -> save('html/article_'.$count.'.html');
//$a = $index -> find('next_search', 0);
$short_post = substr($my_post['post'], 0, 255);
$short_post .="...";
$new_cats = str_replace('<next_search></next_search>', '<p><h2><a href="article_'.$count.'.html" title="'.$my_post['title'].'">'.$my_post['title'].'</a></h2>'
.$short_post.'</p>'."\r\n<next_search></next_search>", $new_cats);

//$a->outertext = '<p><h2><a href="article_'.$count.'.html" title="'.$my_post['title'].'">'.$my_post['title'].'</a></h2>'.$short_post.'</p>'."\r\n<next_search></next_search>";
$sitemap_html = str_replace('<next_search></next_search>', '<p><a href="article_'.$count.'.html" title="'.$my_post['title'].'">'.$my_post['title'].'</a></p>'."\r\n<next_search></next_search>", $sitemap_html);
$count++;
if(($count%50) == 0){
//$a = $index -> find('next_search', 0);
//$a->outertext = '';
$new_cats = str_replace('<next_search></next_search>', '', $new_cats);
$new_cats = str_replace('<cats></cats>', $string_cats, $new_cats);
$handle = fopen($current_cat, 'w+');
fwrite($handle, $new_cats);
fclose($handle);
//$index ->save($current_cat);
$count_cat++;
//$index ->clear();
//$index = file_get_html('index.html');
$current_cat = ('html/cat_'.$count_cat.'.html');
$new_cats = $index_html;
}
//$cat_html = str_replace('<next_search></next_search>', '<p><a href="article_'.$count.'.html" title="'.$title.'">'.$title.'</a></p>'."\r\n<next_search></next_search>", $cat_html);


}
$new_cats = str_replace('<next_search></next_search>', '', $new_cats);
$new_cats = str_replace('<cats></cats>', $string_cats, $new_cats);
$handle = fopen($current_cat, 'w+');
fwrite($handle, $new_cats);
fclose($handle);
$sitemap_html = str_replace('<next_search></next_search>', '', $sitemap_html);
$sitemap_html = str_replace('<cats></cats>', $string_cats, $sitemap_html);
$new_sitemap = fopen('html/sitemap.html', 'w+');
fwrite($new_sitemap, $sitemap_html);
fclose($new_sitemap);
fclose($sitemap);



+ получается беда - плывут яваскрипты

DV
На сайте с 01.05.2010
Offline
644
#3

Замените на

        fwrite($handle, $new_cats."\n");

По явасккриптам, думаю, кавычки страдают.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Бабайка
На сайте с 05.08.2010
Offline
135
#4

DenisVS, простите, что именно заменить?

Бабайка
На сайте с 05.08.2010
Offline
135
#5
DenisVS:
Замените на
        fwrite($handle, $new_cats."\n");

По явасккриптам, думаю, кавычки страдают.

у меня с построением списка все нормально. код не лезет в одну строку.. а вот


$html = new simple_html_dom();
$html = file_get_html('template.html');

в этих сгененых файлах получается в одну строку разметка страницы.

Может быть такое что дело в подключаемых библиотеках simple_html_dom ?

что то надо прописать ?

DV
На сайте с 01.05.2010
Offline
644
#6
Бабайка:
что именно заменить?

        fwrite($handle, $new_cats);
у меня с построением списка все нормально. код не лезет в одну строку.. а вот

А я про этап записи в файл. Предлагаю писать через перенос.

Бабайка
На сайте с 05.08.2010
Offline
135
#7
DenisVS:
        fwrite($handle, $new_cats);

А я про этап записи в файл. Предлагаю писать через перенос.

прописал - тщетно .. все также в одну строку

DV
На сайте с 01.05.2010
Offline
644
#8

Не верю! ©

редактор поменяйте.

Бабайка
На сайте с 05.08.2010
Offline
135
#9

да я же говорю - там дело все в подключаемом парсере simple_html_dom.php

он выдирает с шаблона все переносы. а как его подкрутить чтобы шаблон оставался в своем прежнем виде - не пойму

DV
На сайте с 01.05.2010
Offline
644
#10

http://stackoverflow.com/questions/4812691/preserve-line-breaks-simple-html-dom-parser

В коде строка 1143

        //before we save the string as the doc...  strip out the \r \n's if we are told to.
Есть и ещё вхождения, надо экспериментировать.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий