Page 1 of 1

Отображаем последний темы форума на сайтk

Posted: Tue Jul 20, 2010 9:04 pm
by sl4mmer
Добрый день всем. Написал материал о том, как настроить вывод последних тем с форума на сайте под Made Simple
кому интересно - читаем http://web.yugansk.com/cms-made-simple-integraciya-s-forumom.html, может кому поможет)

Модераторам - здесь выкладывать не стал дабы не дублировать контент, что для поисковиков нехорошо :)

Re: Отображаем последний темы форума на сайтk

Posted: Wed Jul 21, 2010 4:01 am
by Fenik17
Не понимаю, почему народ упорно пользуется рег.выражениями для xml в php, когда давно есть замечательный SimpleXML..

Re: Отображаем последний темы форума на сайтk

Posted: Wed Jul 21, 2010 6:32 am
by sl4mmer
SimpleXML это конечно чудно, и возможно для какого то мега сложного парсинга стоилобы его заюзать но я использую реги в таких случаях как этот по 2м причинам

1) Это довольно простой случай-  регулярка здесь во всех смыслах удобнее.
2) SimpleXML жрет системные ресурсы неплохо так . У меня на одном сервере 8 сайтов висят- так что поэкономить оперативку и процессорное время не лишним будет.

Re: Отображаем последний темы форума на сайтk

Posted: Wed Jul 21, 2010 7:28 am
by Fenik17
1. Для мегасложного парсинга есть другие инструменты, типа XML Parser или DOM. SimpleXML как раз таки создан для простой обработки XML-документов с заранее известной структурой.
2. SimpleXML удобнее и безопаснее регулярный выражений во всех смыслах.
3. SimpleXML работает значительно быстрее регулярный выражений. Можете проверить.

И такой вопрос:

Code: Select all

for($i=1;$i<=10;$i++){
  echo $data[]='<li> <a href="'.$links[1][$i].'" '. $style.'><span>'.$title[1][$i].'</span></a></li>';
}
Что будет, если в rss окажется меньше 10 записей?

Re: Отображаем последний темы форума на сайтk

Posted: Wed Jul 21, 2010 7:53 am
by Fenik17
Кстати, ваш код не работает (ссылки пустые). Да еще и варнинги выдает.

Вот правильный вариант:

Code: Select all

$rss = simplexml_load_file('http://yugansk.com/forum/index.php?app=core&module=global&section=rss&type=forums&id=2');
$i = 0; 
foreach ($rss->channel->item as $item){
	echo "<li><a href=\"$item->link\"><span>$item->title</span></a></li>";
	if (++$i > 9) break;
};
Думаю, тут даже спорить бессмысленно, что лучше - regexp или SimpleXML.

Re: Отображаем последний темы форума на сайтk

Posted: Wed Jul 21, 2010 8:00 am
by sl4mmer
Я же в посте сказал - что я  направляю в поток 10 записей (но ктото может захочет использовать и меньше). Конечо надо в статье упомянуть чтобы значение заменили(если надо), как -то вылетело из головы.

Касаемо что лучше работает - ну давайте, тот же скрипт который приведем у меня затестим по времени выполнения и использованию оперативной памяти. В варианте с регами и в варианте с simple XML - это будет объективно

Re: Отображаем последний темы форума на сайтk

Posted: Wed Jul 21, 2010 8:15 am
by Fenik17
ну давайте, тот же скрипт который приведем у меня затестим
Тестируйте. Но сначала исправить надо:

> $t=preg_match_all('(.*)/',$file,$links);

на

> $t=preg_match_all('/(.*)/',$file,$links);

Re: Отображаем последний темы форума на сайтk

Posted: Sat Jul 24, 2010 5:37 am
by sl4mmer
опечатку поправил конечно). В общем получается что симплХМЛ выполняется немножко быстрее , хотя при этом памяти потребляет больше (тоже впрочем незначительно)- так что думаю тут по большей части дело вкуса и привычки)