möchte gerne die Textzeichen vom RDF-Praser auf 100 Zeichen im Text begrenzen (Überschirft soll vollständig angezeigt werden).
Wer kann mir weiterhelfen?
Vermutlich muss im folgenden Code die Begrenzung von news_item.TEXT auf 100 begrenzt werden:
Code: Alles auswählen
<?php
function cache_file($url, $cachefile, $cachetime = 900) {
$stat = @stat($cachefile);
if ($stat[9] < (time() - $cachetime)) {
$fp_url = fopen($url, 'r');
$fp_cache = fopen($cachefile, 'w');
while($str = fread($fp_url, 1024)) {
fwrite($fp_cache, $str);
}
fclose($fp_url);
fclose($fp_cache);
return false;
}
else {
return true;
}
}
class rdf_parser {
var $file;
var $cache_file = '';
var $cache_time = 0;
var $cache_used = false;
var $content = '';
var $channel = array();
var $items = array();
function rdf_parser($file, $cache_file='', $cache_time=0) {
$this->file = $file;
$this->cache_file = $cache_file;
$this->cache_time = $cache_time;
//$this->parse();
}
function match($text, $elements) {
$ret = array();
foreach($elements as $element) {
if(preg_match("#<$element>(.*?)</$element>#si", $text, $matches)) {
$ret[$element] = $matches[1];
}
}
return $ret;
}
function parse() {
$file = $this->file;
if($this->cache_file && $this->cache_time) {
$this->cache_used = cache_file($this->file, $this->cache_file, $this->cache_time);
$file = $this->cache_file;
}
$this->content = implode('', file($file));
if(preg_match('#<channel>(.*?)</channel>#si', $this->content, $matches)) {
$this->channel = $this->match($matches[1], array('title', 'description', 'link'));
}
preg_match_all('#<item>(.*?)</item>#si', $this->content, $matches, PREG_PATTERN_ORDER);
foreach($matches[1] as $item) {
$this->items[] = $this->match($item, array('title', 'description', 'link'));
}
}
function template_output($block_name) {
global $template;
$row = 0;
foreach($this->items as $item) {
$template->assign_block_vars($block_name, array(
'ROW_CLASS' => ($row++%2 == 0 ? 'row1' : 'row2'),
'TITLE' => $item['title'],
'TEXT' => $item['description'],
'URL' => $item['link']
));
}
}
}
function show_rdf($url, $block_name, $cache_file='', $cache_time=0) {
$parser = new rdf_parser($url, $cache_file, $cache_time);
$parser->parse();
$parser->template_output($block_name);
}
?>
Im vorraus schonmal ein herzliches Dankeschön.
Gruß Elektron