Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Вопросы по XML
цитата
11/01/13 в 15:46
 Lexikon
сгенерил XML файл нижеприведенным кодом

<?php

$content = file_get_contents("shablon.tpl");
$file = file("base.dat");
$loc = "";
$count = count($file);
//$lines = explode( "\n", $file );
for( $i = 1; $i < $count; $i += 1 )
{
$res = explode( "|", $file[ $i ] );
$loc .=
'<data>
  <id>'.$res[0].'</id>
  <shows>'.$res[1].'</shows>
  <clicks>'.$res[2].'</clicks>
  <ctr>'.$res[3].'</ctr>
  <resets>'.$res[4].'</resets>
  <tctr>'.$res[5].'</tctr>
  <url>'.$res[6].'</url>
  <thumb>'.$res[7].'</thumb>   
  <title>'.$res[8].'</title>
  <desc>'.$res[9].'</desc>
  <width>'.$res[10].'</width>
  <height>'.$res[11].'</height>
  <unixtime>'.$res[16].'</unixtime>               
</data> ';
}

$body = $loc;
$content = str_replace('{body}', $body, $content);
file_put_contents('./bd.xml', $content);

?>

все вроде нормально но вот когда открываю хмл файл в блокноте </data> <data> стоят на одной строке, незнаю на сколько это важно, попытался в пхп коде сделать перенос, но что-то не вышло, может не так делал. ну это не основной вопрос.

Вот чем задался. Заключенных в тэг <data> </data> данных несколько тысяч вариантов, вот тут появился вопрос, возмо жно ли на основе этих данных создать станицы по шаблону с постраничной навигацией?
цитата
11/01/13 в 16:09
 Торин Дубощит
если переносы важны используй двойные скобки + \n. Да можно, есть даже движок который работает на xml.
цитата
11/01/13 в 18:46
 Yacc
Генерить xml конкатенируя строки это конечно мило, но моветон. Когда возьмёшься за генерацию шаблонов, ты это поймёшь.

http://www.ibm.com/developerworks/ru/library/x-xmlphp1/
http://php.net/manual/ru/refs.xml.php

А ответ на твой вопрос: да, возможно. icon_smile.gif
цитата
11/01/13 в 19:00
 FXIX
на одной строке потому что и в коде на одной строке. или ты в ворде код пишешь? trollface.png
это просто тебе редактор кода показывает как тебе удобнее видеть. а так вся строка на одной строке.

<?php
$a = 'вся
эта
срань
будет
на одной
строке';

но не в CLI-режиме
цитата
11/01/13 в 21:21
 Lexikon
Yacc писал:
Генерить xml конкатенируя строки это конечно мило, но моветон. Когда возьмёшься за генерацию шаблонов, ты это поймёшь.

http://www.ibm.com/developerworks/ru/library/x-xmlphp1/
http://php.net/manual/ru/refs.xml.php

А ответ на твой вопрос: да, возможно. icon_smile.gif


я просто не нашел другого выхода как просто сгенерить .xml из имеющихся данных в текстовом файле. Да и плюс как то ковырял пхп функции для XML но они не работали хотя и ПХП 5, но видимо что то не подключено из модулей или библиотек.
нужно будет еще покорвырять насчет многостраничности.
цитата
13/01/13 в 14:01
 AWD
FXIX писал:
на одной строке потому что и в коде на одной строке. или ты в ворде код пишешь? trollface.png
это просто тебе редактор кода показывает как тебе удобнее видеть. а так вся строка на одной строке.

<?php
$a = 'вся
эта
срань
будет
на одной
строке';

но не в CLI-режиме
а при чем тут CLI режим? вся эта срань, если смотреть не через браузер, будет с новой строки, как и написано.
совершенно не понятно, почему у ТС не разбито на строки... мож блокнот поменять?))) я вот бился-бился - так и не добился, чтоб в одну строку вышло. только если браузером зырять. а глянь в исходник - так все пучком, с новой строки...
пхп, конечно, игнорирует лишние пробелы и перевод каретки и новые строки, но лишь до тех пор, пока это не текстовая величина.
"это просто тебе редактор кода показывает как тебе удобнее видеть." - да што же это за такое? редактор, что, хранит в отдельном файле переносы строк? или заменяет их на "тут чувак жмакнул энтэр" и при выводе на экран заменяет на \r\n? видимо ты точно в ворде напрогался, что плющит тебя так))) фар, блокнот, scite, исходник (в опере CTRL+U) - везде заебись. остается афтару пожелать сделать все то-же, но только... в блокноте. и проверь еще раз. не может быть, чтоб в одну строку лепило...
и еще: ты не закрыл ?> smail101.gif а вообще шорт-таги рулят - Код:
<?='ламеры всегда пишут "&lt?php" - видимо, это придает некую особую значимость их коду. типа, не питон какой-то, а, бля, целый пхп!))))'?>
что выведет это код? smail101.gif прикинь, ни тебе принта, ни тебе эхо, ни пхп - а оно пишет, ебааааать... smail101.gif пойду еще дуну... icon_biggrin.gif
цитата
13/01/13 в 14:11
 AWD
Yacc писал:
Генерить xml конкатенируя строки это конечно мило, но моветон. Когда возьмёшься за генерацию шаблонов, ты это поймёшь.
а по твоему милее юзать хер знает какой тяжести и глючности вшитые дебильные функции? в данном примере генерится очень простой хмл, и нет необходимости юзать ужасно тяжелые и тупые хмл функции. и как бы это ни было мило, но в конце концов некая функция конкатенирует строки, иначе никак. а ты предлагаешь за глаза нагенерить говнофукциями, загрузить проц на еще несколько тысяч тактов какой-то полной херней... ну-ну... сразу видно, ты даже не знаешь, во сколько раз тяжелее (x==y) чем (x===y) (при условии однотипности данных)...
всем удачи!
цитата
13/01/13 в 14:19
 AWD
а, бля. только заметил. сорри.
вместо
</data> ';
напиши
</data>
'; //ага, это перенос строки.
и будет счастье. ступил накурившись бухнувши)))) столько буков, а чего никто не сказал автору сделать это?
блин, пацаны, извиняйте, набуянил не в тему. вот так работают умозаключения... надо с этим бороться...
еще раз извините, кому насыпал не в попад...

и вообще, моветон - это не писать ассемблерные вставки в коде на Си, остальное - вообще хрень какая-то...
цитата
14/01/13 в 10:24
 Торин Дубощит
Lexikon:
Более трушный код для работы с xml.
<?php

$content = file_get_contents("shablon.tpl");
$file = file("base.dat");
$count = count($file);
$body = new SimpleXMLElement($xmlstr);
//$lines = explode( "\n", $file );
for( $i = 1; $i < $count; $i += 1 )
{
$res = explode( "|", $file[ $i ] );
$body->data[$i]->->addChild('id', $res[0]);
$body->data[$i]->->addChild('clicks', $res[1]);
$body->data[$i]->->addChild('id', $res[2]);
$body->data[$i]->->addChild('ctr', $res[3]);
$body->data[$i]->->addChild('resets', $res[4]);
$body->data[$i]->->addChild('tctr', $res[5]);
$body->data[$i]->->addChild('url', $res[6]);
$body->data[$i]->->addChild('thumb', $res[7]);
$body->data[$i]->->addChild('title', $res[8]);
$body->data[$i]->->addChild('desc', $res[9]);
$body->data[$i]->->addChild('width', $res[10]);
$body->data[$i]->->addChild('height', $res[11]);
$body->data[$i]->->addChild('unixtime', $res[16]);
}

$content = str_replace('{body}', $body->asXML(), $content);
file_put_contents('./bd.xml', $content);

?>
Для того чтоб сайт работал на xml, глянь здесь
цитата
14/01/13 в 18:33
 Lexikon
AWD писал:
и еще: ты не закрыл ?>

где?

AWD писал:
<?='ламеры всегда пишут "&lt?php" - видимо, это придает некую особую значимость их коду. типа, не питон какой-то, а, бля, целый пхп!))))'?>

на том же http://php.net тоже пишут, да и если я его писать не буду мне это мозгов не придаст. А хуже от того, что я написал php уж точно не будет. icon_wink.gif
цитата
14/01/13 в 18:42
 FXIX
да. любой файл открывается <?php.
а вот закрывать не надо. это давно известный факт. ну если файл чисто на пхп.

тромбоцит правильно SimpleXML заюзал. если есть стандартный путь - зачем мучить своё
цитата
14/01/13 в 18:47
 Lexikon
да и кстати я не в ворде всё это просматриваю smail101.gif


Эта страница в полной версии