Forum » Izdelava spletišč » Skripta easyfeeder in vključevanje novic
Skripta easyfeeder in vključevanje novic
Bela01 ::
Pregledla sem že kup stvari, pa več ne vem kaj delam narobe.
Torej na neki prazni strani, kjer kličem tole skripto, da bi mi izpisala novice z rtvslo strani zadeva deluje. Kak pa želim enako naredit na neki svoji že oblikovani strani, pa kar zbluzi vse skupaj.
Izpis nekaterih napak:
Notice: Use of undefined constant feed - assumed 'feed' in /domains/pgd-bistrica.com/public_html/proba/easyfeeder.php on line 30
Notice: Use of undefined constant maxitems - assumed 'maxitems' in /domains/pgd-bistrica.com/public_html/proba/easyfeeder.php on line 39
Notice: Use of undefined constant maxitems - assumed 'maxitems' in /domains/pgd-bistrica.com/public_html/proba/easyfeeder.php on line 39
......
Po vseh teh napakah se mi pa kljub temu izpišejo novice.
Koda easyfeeder.php:
Na strani kličem tako:
Ali ima mogoče kdo kakšno idejo? Skripto je sicer mogoče dobiti na tej strani:
klik
Torej na neki prazni strani, kjer kličem tole skripto, da bi mi izpisala novice z rtvslo strani zadeva deluje. Kak pa želim enako naredit na neki svoji že oblikovani strani, pa kar zbluzi vse skupaj.
Izpis nekaterih napak:
Notice: Use of undefined constant feed - assumed 'feed' in /domains/pgd-bistrica.com/public_html/proba/easyfeeder.php on line 30
Notice: Use of undefined constant maxitems - assumed 'maxitems' in /domains/pgd-bistrica.com/public_html/proba/easyfeeder.php on line 39
Notice: Use of undefined constant maxitems - assumed 'maxitems' in /domains/pgd-bistrica.com/public_html/proba/easyfeeder.php on line 39
......
Po vseh teh napakah se mi pa kljub temu izpišejo novice.
Koda easyfeeder.php:
<?php
//error_reporting(E_ALL&(~E_NOTICE));
function cut($start,$end,$word,$testvar=0)
{
$word=substr($word,strpos($word,$start)+strlen($start));
$word=substr($word,0,strpos($word,$end));
if($testvar) die($start." ".$end."<br>".$word);
return $word;
}
//make resume from description
function resume($text,$limit=7)
{
$words=@explode(" ",$text);
$words=@array_splice($words,0,$limit);
$retstr=@implode(" ",$words);
return $retstr."... ";
}
function easyfeeder($configs)
{
//go thru the feeds array
$content=file_get_contents($configs[feed]);
$items=explode("<item>",$content);
array_shift($items); //strip the general feed description
$retstr="";
foreach($items as $cnt=>$item)
{
if($configs[maxitems]>0 and $cnt+1>$configs[maxitems]) break;
//extract tags
$title=cut("<title>","</title>",$item);
$link=cut("<link>","</link>",$item);
if(strstr($item,"<![CDATA["))
{
$description=cut("<description>","</description>",$item);
$description=cut("<![CDATA[","]]",$description);
}
else
{
$description=cut("<description>","</description>",$item);
}
$language=cut("<language>","</language>",$item);
$copyright=cut("<copyright>","</copyright>",$item);
$managingEditor=cut("<managingEditor>","</managingEditor>",$item);
$webMaster=cut("<webMaster>","</webMaster>",$item);
$pubDate=cut("<pubDate>","</pubDate>",$item);
$lastBuildDate=cut("<lastBuildDate>","</lastBuildDate>",$item);
$category=cut("<category>","</category>",$item);
//now replace tags
$tpl=file_get_contents($configs[template]);
$tpl=str_replace("{title}",$title,$tpl);
$tpl=str_replace("{link}",$link,$tpl);
$tpl=str_replace("{description}",$description,$tpl);
$tpl=str_replace("{language}",$language,$tpl);
$tpl=str_replace("{copyright}",$copyright,$tpl);
$tpl=str_replace("{managingEditor}",$managingEditor,$tpl);
$tpl=str_replace("{webMaster}",$webMaster,$tpl);
$tpl=str_replace("{pubDate}",$pubDate,$tpl);
$tpl=str_replace("{lastBuildDate}",$lastBuildDate,$tpl);
$tpl=str_replace("{category}",$category,$tpl);
$retstr.=$tpl;
}
return $retstr;
}
?>
Na strani kličem tako:
<?php
error_reporting(E_ALL&(~E_NOTICE));
$configs=array();
$configs[feed]="http://www.rtvslo.si/feeds/08.xml";
$configs[template]="template.html";
$configs[maxitems]="5";
require_once("easyfeeder.php");
?>
<html>
<head><title>Your sample RSS page</title>
</head>
<body>
<table align=center width=220>
<tr><td>
<p>
<?=easyfeeder($configs)?>
</p>
</td>
</tr></table>
</body>
Ali ima mogoče kdo kakšno idejo? Skripto je sicer mogoče dobiti na tej strani:
klik
Ziga Dolhar ::
$configs[feed]="http://www.rtvslo.si/feeds/08.xml"; $configs[template]="template.html"; $configs[maxitems]="5";
Glede na to, da "feed", "template" in "maxitems" očitno niso konstante, predlagam, da jih vržeš v narekovaje. Torej,
$configs['feed']= ...
In tako naprej za vse tri omenjene težave.
https://dolhar.si/
Bela01 ::
Hvala!
V čem je pa fora, da če dam v neko stran, ne morejo biti to konstante? Če pa kličem z prazne strani pa deluje. Meni se to zdi enako :/
V čem je pa fora, da če dam v neko stran, ne morejo biti to konstante? Če pa kličem z prazne strani pa deluje. Meni se to zdi enako :/
Ziga Dolhar ::
Well, na vrhu skripte izklopis prikaz NOTICE-ov :-). Vidi error_reporting cist na vrhu.
S tem zgolj zakrijes slabo pisano kodo.
S tem zgolj zakrijes slabo pisano kodo.
https://dolhar.si/
Ziga Dolhar ::
Lejjo :).
Rešitev, kot sem ti povedal, je, da izraze feed, template in maxitems znotraj associativnega arraya - DAŠ V NAREKOVAJE. Madona!
Ali pa, če bi res rada uporabljala konstante - jih moraš definirati. Glej funkcijo define().
Rešitev, kot sem ti povedal, je, da izraze feed, template in maxitems znotraj associativnega arraya - DAŠ V NAREKOVAJE. Madona!
$configs['feed']="http://www.rtvslo.si/feeds/08.xml"; $configs['template']="template.html"; $configs['maxitems']="5";
Ali pa, če bi res rada uporabljala konstante - jih moraš definirati. Glej funkcijo define().
https://dolhar.si/
Bela01 ::
Nisva se razumela. Zadeva že deluje ;). Sem popravla one narekovaje.
Vendar mi je hecno zakaj more bit tak oz. me zanima zakaj ne morejo bit kot konstanta? Namreč če kličem to v eni prazni strani, pa ni nobene napake. Informativno me zanima - pač za drugič ;)
Vendar mi je hecno zakaj more bit tak oz. me zanima zakaj ne morejo bit kot konstanta? Namreč če kličem to v eni prazni strani, pa ni nobene napake. Informativno me zanima - pač za drugič ;)
Ziga Dolhar ::
Zato ni napake, ker imaš po defaultu verjetno izklopljen prikaz "NOTICE" dogodkov (napak). Če boš tudi tja na vrh dala error_reporting(E_ALL);, se bodo tudi tam prikazale.
Če želiš uporabit kot "konstante", jih moraš seveda definirati kot konstante. Torej, še preden so prvič uporabljene, mora biti oznanjeno define('feed', 'krnekifeed');.
Če želiš uporabit kot "konstante", jih moraš seveda definirati kot konstante. Torej, še preden so prvič uporabljene, mora biti oznanjeno define('feed', 'krnekifeed');.
https://dolhar.si/
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | [PHP] Nedelujoči mail()Oddelek: Programiranje | 1691 (1561) | Miko55 |
| » | Prenos WP bloga k drugem gostitelju, ni možna več prijavaOddelek: Izdelava spletišč | 1970 (1751) | marS |
| » | PHP & apache - nejasen problemOddelek: Pomoč in nasveti | 1548 (1396) | Dahakka |
| » | Povezava na bazo iz drugega strežnikaOddelek: Izdelava spletišč | 1164 (939) | Tody |
| » | [PHP]: problem s pošiljanjem datotek na strežnikOddelek: Programiranje | 1083 (956) | Silvano |