Ik ben bezig om een script die rss feeds laat zien om te schrijven zodat er in de output meer mogelijkheden zitten om deze aangepast te laten zien.
Nu loop ik tegen een probleem aan waar ik even geen oplossing meer voor weet.
Ik heb de mogelijkheid toegevoegd om het aantal tekens op te geven die ik laat zien in de feed, hiervoor gebruik ik $tekens. Gemakshalve heb ik deze3 in het script hieronder opgegeven als zijnde 250. Nu geeft die enkel 5 tekens in plaats van de gevraagde 250, en geen idee hoe dat komt heb al geprobeerd met (int)$tekens etc etc maar dat gaf geen oplossing. Vul ik i.p.v. $tekens gewoon het getal 250 in op de laatste regel dan werkt het wel.
Iemand enig idee wat ik verkeerd doe ?
// De functie die de feed afkapte en ...... aan het einde toevogd //
function troncaTesto($testo, $caratteri) { if (strlen($testo) <= $caratteri) return $testo; $nuovo = wordwrap($testo, $caratteri, "|"); $nuovotesto=explode("|",$nuovo); return $nuovotesto[0]."..........."; }
function endElement($parser, $name) {
global $insideitem, $tag, $title, $description, $link;
if ($name == 'ITEM') {
printf('<li><strong><a href=\'%s\' target="_blank">%s</a></strong><br>',trim($link),trim($title));
// Roept de functie aan werkt wel met 250 ! niet met $tekens
$description = troncaTesto($description, $tekens);
Dat komt omdat substr iets anders werkt. Die moet drie argumenten hebben, zie de handleiding. Het komt ongeveer neer op substr($description, 0, $tekens).
[size=xsmall]Toevoeging op 27/02/2011 17:36:28:[/size]
Ook het declareren van $tekens in de scope van startElement en endElement, heeft niet direct geleidt tot een oplossing. Is het niet mogelijk om $tekens al eerder global te maken ?
<?php
function startElement($parser, $name, $attrs) {
global $insideitem, $tag, $title, $description, $link, $tekens;
if ($insideitem) {
$tag = $name;
} elseif ($name == 'ITEM') {
$insideitem = true;
}
}
function troncaTesto($testo, $caratteri) { if (strlen($testo) <= $caratteri) return $testo; $nuovo = wordwrap($testo, $caratteri, "|"); $nuovotesto=explode("|",$nuovo); return $nuovotesto[0]."..........."; }
function endElement($parser, $name) {
global $insideitem, $tag, $title, $description, $link, $tekens;
if ($name == 'ITEM') {
printf('<li><strong><a href=\'%s\' target="_blank">%s</a></strong><br>',trim($link),trim($title));