да , rss.php работает, вопрос куда новостьи запичывать? В XML? Если да то почему опера не отображает новости из xml?
Ничо не понял. Новости у тебя в rss.php? Или у тебя он генерирует новости и пишет в xxx.xml? Может опере надо заголок передавать.. если в xml попробуй в .htaccess прописать Addtype application/x-httpd-php .xml и в xml дописать в начало <? header("Content-type: application/rss+xml"); ?> ну и если не в xml то в .php допиши...
Моя задача повесить на сайт rss , читал сдесь http://www.caseclub.ru/articles/webrss.html. Всё так и сделал но новостей 0! Как их добавить? Их в базу вбивать или в xml? Ни чего непойму. HELP ME PLIS!!!
mff Сначала в базу вбиваешь, а потом PHP-скрипт "на лету" формирует RSS, выдергивая контент из базы. Вроде так...
берешь phpmyadmin к примеру. через него добавляешь в нужную таблицу новости, потом скриптом берешь данные из таблицы и формируешь rss.
Как вывести новости из xml ? Уже от мануала голова кругом rss.inc PHP: <?php /* CRss версия 1.0 от 02.01.2007 * класс для создания каналов новостей RSS * http://www.caseclub.ru * используйте без ограничений */ class CRss { var $Title; // заголовок канала var $Link; // ссылка на главную страницу var $Copyright; // копирайт var $Description; // описание канала var $LastBuildDate; // дата последнего документа (по умолчанию текущая) var $Language; // язык var $PubDate; // дата публикации var $ManagingEditor; // E-mail редактора var $WebMaster; // E-mail webmaster var $Category; // категория var $Query; // содержимое запроса var $Connect; // для соединения с базой данных var $Result; // для хранения результата function Translate($text) // кодируем для вывода { $trans = array("<" => "<", ">" => ">",'"' => ""","&" => "&"); $text=strtr($text,$trans); $array=explode("<br>",$text); $count=count($array); return $text; } function Query() { $this->Result = mysql_query($this->Query) or die("Query failed"); } function Open($Server,$DataBase,$Login,$Password) // открыть MySql { $this->Connect = mysql_connect($Server, $Login, $Password ) or die("Could not connect"); mysql_select_db($DataBase) or die("Could not select database"); } function Close() // закрыть MySql { mysql_free_result($this->Result); mysql_close($this->Connect); } function PrintHeader() // печать заголовка { header("Content-Type: application/xml "); // сразу говорим, что это формат XML $RN="\r\n"; $End="?"; $Date=date("r"); // дата в формате Mon, 25 Dec 2006 10:23:37 +0400 print "<$End"; print "xml version=\"1.0\" encoding=\"windows-1251\" $End> $RN"; print "<rss version=\"2.0\">$RN"; print " <channel>$RN"; print " <title>$this->Title</title>$RN"; print " <category>$this->Category</category>$RN"; print " <link>$this->Link</link>$RN"; print " <copyright>$this->Copyright</copyright>$RN"; print " <description>$this->Description</description>$RN"; print " <lastBuildDate>$this->LastBuildDate</lastBuildDate>$RN"; print " <language>$this->Language</language>$RN"; print " <pubDate>$this->PubDate</pubDate>$RN"; print " <docs>http://site.ru/rss</docs>$RN"; print " <managingEditor>$this->ManagingEditor</managingEditor>$RN"; print " <webMaster>$this->WebMaster</webMaster>$RN"; } function PrintBody($Title,$Link,$Description,$Category,$PubDate) // печать тела { $RN="\r\n"; //$Title =$this->Translate($Title); //$Link =$this->Translate($Link); $Description =$this->Translate($Description); print " <item>$RN"; print " <title>$Title</title>$RN"; print " <link>$Link</link>$RN"; print " <description>$Description</description>$RN"; print " <category>$Category</category>$RN"; print " <pubDate>$PubDate</pubDate>$RN"; print " <guid>$Link</guid>$RN"; print " </item>$RN"; } function PrintFooter() // печать заголовка { print " </channel>$RN"; print "</rss>$RN"; } } ?> rss.php PHP: <?php // начало программы include "rss.inc"; // это собственно класс include "conn.inc"; // переменные для открытия базы $Rss= new CRss(); $Rss->Title="RSS Мой сайт"; $Rss->Link="http://site.ru/rss/"; $Rss->Copyright="© ."; $Rss->Description="Описание"; $Rss->Category = "Разработка программного обеспечения"; $Rss->Language="ru"; $Rss->ManagingEditor="[email protected]"; $Rss->WebMaster="[email protected]"; $Rss->Query="SELECT BLOG.title, BLOG.description, BLOG.link, BLOG.date, BLOG.category FROM BLOG ORDER by DATE desc Limit 0,20"; $Rss->Open($Server,$DataBase,$Login,$Password); $Rss->LastBuildDate=date("r"); // получаем последнюю дату публикации $query = "select BLOG.DATE FROM BLOG ORDER by BLOG.date desc Limit 0,1"; $result1 = mysql_query($query) or die("FROM blog failed"); $line = mysql_fetch_array($result1); $Date =date("r",strtotime($line[0])); mysql_free_result($result1); $Rss->LastBuildDate=$Date; $Rss->PubDate=$Rss->LastBuildDate; $Rss->PrintHeader(); $Rss->Query(); while ($line = mysql_fetch_array($Rss->Result)) { // для каждой записи выведем $Title = $line[0]; $Description = $line[1]; $Link=$line[2]; $PubDate=date("r",strtotime($line[3])); $Category=$line[4]; $Rss->PrintBody($Title,$Link,$Description,$Category,$PubDate); } $Rss->PrintFooter(); $Rss->Close(); ?> rss.xml HTML: <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>Моя лента новостей</title> <link>http://www.моя_лента.ru</link> <description>Самый лучший блог на свете</description> <lastBuildDate>Sat, 30 Dec 2006 00:00:00 +0300</lastBuildDate> <item> <title>С Новым Годом!</title> <link>http://www.моя_лента.ru/new1.html</link> <description>Поздравляем всех читателей с Новым Годом</description> </item> </channel> </rss> Табличка в базе Code: CREATE TABLE BLOG ( ID int(11) NOT NULL default '0', title varchar(50) default NULL, description text default NULL, link varchar(200) default NULL, date date default NULL, category varchar(100) NOT NULL default '', ab varchar(10) NOT NULL default '', PRIMARY KEY (ID) ) TYPE=MyISAM;
можете обяснить чо такое class в php? мне совсем из учебников не понятно (((( эта типа функций? к обяснению я бы не против что бы написали пример в паскале. может через него пойму.
По просьбам трудящихся. Вот смоти у тебя на руке есть 5 объектов "палец", каждый палец имеет определенный набор свойств и методов. Допустим: PHP: класс палец{ var $длина; //это var $ширина; //свойства var $цвет="телесный"; //пальца var $название; var $положение=0; //текущее положение пальца, то есть палец не согнут. function сгибание_пальца($угол) { //сгибание_пальца это метод работы с обектом палец. this->положение=this->положение+$угол; if (this->положение<0) {echo "Чувак, ты сломал палец!";} else {echo "ты согнул палец на $угол градусов";} } function рост_пальца($прирост_длины, $прирост_ширины) { ....... } function изменение_имени_пальца($новое_имя) { ................ } function изменение_цвета_пальца($цвет) { ..................... } } На основании этого класса ты, например, можешь создать объект "указательный палец" и используя методы(функции класса) менять свойства(переменные класса) объекта палец. Думаю данное объяснение может и образно не на пальцах, но зато, на пальцах фактически (=
кусочек из html кода Code: <option value="hersteller1">ALFA ROMEO</option> <option value="hersteller2">ALPINE</option> <option value="hersteller3">ARO</option> <option value="hersteller4">AUDI</option> <option value="hersteller5">AUSTIN</option> <option value="hersteller6">AUTO UNION</option> мне надо выдрать из этого Code: ALPINE ARO AUDI AUSTIN AUTO UNION какое регулярное выражение мне для этого использовать?
А зачем тебе здесь регулярка? Вполне хватит PHP: $filename="test.txt"; $buff=file_get_contents($filename); echo strip_tags($buff,"<br>"); а если нужна регулярка то вот: /[A-Z\s*]+/
А она правильная? PHP: <?php $file = file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en'); $pattern = "/[A-Z\s*]+/"; preg_match_all($pattern,$file,$matches); //print_r($matches); //echo strip_tags($file); foreach($matches[1] as $link) echo $link.'<br>'; ?> почему то ничего не выдает((
дело не в \s та регулярка была для куска хтмл кода, что ты привел а тебе для выковыривания лишних тегов нужна эта />([A-Z\s*]+)</ и отфильтруй потом массив от пустых значений. PHP: <?php $file = file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en'); $pattern = "/>([A-Z\s*]+)</"; preg_match_all($pattern,$file,$matches); $matches[1]=array_unique($matches[1]); foreach($matches[1] as $link) echo $link.'<br>'; ?>