Acest script poate sa afiseze in oricare pagina din site, generata cu PHP, ultimile subiecte de pe un Forum, subiecte pe care le preia din pagina XML (Atom 1.0) generasta de forumul respectiv, PHPBB sau MyBB.
Acel forum trebuie sa aibe functionala si activata aplicatia de generare a paginilor XML pentru fluxurile Atom /RSS.
Scriptul preia datele din pagina XML de la adresa mentionata in el (la variabila $file_xml) si le parseaza (parcurge) retinand de la fiecare subiect: titlul, data, adresa URL si o parte din continutul subiectului.
Numarul de subiecte returnate si numarul de cuvinte retinut din fiecare continut pot fi usor modificate in codul php.
Acest script e facut sa functioneze pentru forumurile PHPBB sau MyBB care genereaza fluxuri Atom ca sa fie citite de surse externe, dar poate fi relativ usor modificat ca sa afiseze datele din fluxuri RSS 2.0 sau alte forumuri cu modul de generare pagini .xml. Trebuie doar modficate numele tagurilor din variabila Array "$tags_xml" comform cu cele folosite in pagina .xml citita.
<?php // Script shows latest subjects on forum (tested with PHPBB 3.2) // From: https://coursesweb.net/php-mysql //HERE add the URL of the RSS feed of your phpbb forum $file_xml ='https://coursesweb.net/forum/app.php/feed/news'; //to test MyBB (uses atom 1.0 URL) // $file_xml ='https://community.mybb.com/syndication.php?type=atom1.0'; $nr_subj =10; //nr. subjects to display $nr_cuv =21; //maximum number of words from content to display //tag names to read from XML $tags_xml = array('baza'=>'entry', 'titlu'=>'title', 'url'=>'id', 'content'=>'content', 'data'=>'updated'); //gets and parses the XML file //returns HTML code with latest subjects function get_last_forum($file_xml) { GLOBAL $nr_subj, $nr_cuv, $tags_xml; $re =''; //get page data with cUrl $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $file_xml); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6'); $pg_dat = curl_exec($ch); if(!curl_errno($ch) && is_string($pg_dat) && strlen($pg_dat)>11 && ($obj = @simplexml_load_string($pg_dat, null, LIBXML_NOCDATA))){ $pg_dat =''; $baza = $obj->{$tags_xml['baza']}; $nr_subj = min($nr_subj, count($baza)); for($i=0; $i<$nr_subj; $i++){ $titlu = $baza[$i]->{$tags_xml['titlu']}; $url = str_ireplace(['http://'. $_SERVER['SERVER_NAME'] .'/', '&'], ['', '&'], $baza[$i]->{$tags_xml['url']}); $content =strip_tags(preg_replace('#\<p\>(.*?)\</p\>#i', '', $baza[$i]->{$tags_xml['content']})); //delete <p> content and tags //gets and formats subjects date $data = $baza[$i]->{$tags_xml['data']}; $data = date_parse($data); $data = $data['day'].'-'.$data['month'].'-'.$data['year']; //keep specified nr. words if(preg_match('/([^ ]*[ ]{0,1}){1,'.$nr_cuv.'}/i', $content, $m)) $content = $m[0] .' ..'; $link ='<a href="'. $url. '" title="'. $titlu .'">'. $titlu. '</a> <sup>'. $data.'</sup>'; $re .='<li>'. $link.'<div>'. $content.'</li>'; } if($re !='') $re ='<ol>'.$re.'</ol>'; } return $re; } echo get_last_forum($file_xml); //outputs the result
<ul> <li>http://coursesweb.net/html/</li> <li>http://www.marplo.net/html/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net
I`m living here. - Traiesc /Locuiesc aici.
Estoy viviendo aquí. - Traiesc /Locuiesc aici.