Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: rss-uutisten hakeminen php:llä

Sivun loppuun

esakom [28.01.2005 03:23:21]

#

haluaisin kehitellä frontpagella tehdylle sivulleni rss-uutistenhakijan. php:llä pitäisi ilmeisesti onnistua, mutta en ole saanut toimimaan. Tein seuraavan php-tiedoston:

<?php
$url = "http://blogs.msdn.com/aaronmar/Rss.aspx";

function headlines($url) {
$fp = @fopen($url, "r");
if ($fp) {
$string = "";
while(!feof($fp)) {
$string .= chop(fgets($fp,300));
}
fclose($fp);
$items = explode("</item>",$string);
$content = "";
for ($i=0;$i<10;$i++) {
$link = ereg_replace(".*<link>","",$items[$i]);
$link = ereg_replace("</link>.*","",$link);
$title = ereg_replace(".*<title>","",$items[$i]);
$title = stripslashes(ereg_replace("</title>.*","",$title));
if (strcmp($link,$title) AND $items[$i] != "") {
$content .= "<strong><big>·</big></strong><a href="$link" target="new">$title</a><br>n";
}
}
}
return $content;
}
?>

Nyt en kuitenkaan osaa kutsua tuota html:stä, yritin seuraavaa:
<?php
require_once "/rss.php";
?>

mutta ei toiminut.

Olen uusi php:n kanssa, joten suokaa anteeksi, tämän pitäisi varmaan olla helppo juttu. Miten saan uutiset näkymään sivullani?

Mod. edit: lisätty, eipä näyttäny paljo auttavan. Vastaisuuden varalle: sisentäminen on pop.

Latska [28.01.2005 07:14:52]

#

Auttaako tämä?

Voisko moderaattorit/viestin lähettäjä laittaa viestiin kooditagit?

Blaze [28.01.2005 08:01:45]

#

Tuo headlines() on funktio, joka palauttaa arvon. Tässä tapauksessa tuo arvo HTML-koodia, joka sisältää ne otsikot. Voit tulostaa tuon arvon haluamaasi paikkaan ihan tavallisesti:

echo headlines();

Toki, jos pidät sitä erillisessä tiedostossa, joudut liittämään ensin tuon tiedoston, esimerkiksi includella:

include('rss.php');

kayttaja-2791 [28.01.2005 08:02:13]

#

http://magpierss.sourceforge.net/

Osaa mm. cachetuksen ja on todella helppokäyttöinen.

esakom [28.01.2005 14:05:17]

#

Nyt käytän magpierssiä:

<?php
require_once 'rss_fetch.inc';
$url = 'http://news.bbc.co.uk/rss/newsonline_world_edition/front_page/rss091.xml';
$num_items = 3;
$rss = fetch_rss($url);

$items = array_slice($rss->items, 0, $num_items);

echo "Site: ", $rss->channel['title'], "<br>
";
foreach ($items as $item ) {
	$title = $item[title];
	$url   = $item[link];
	$desc   = $item[description];
	echo "<a href=$url>$title<br>$desc</a></li><br><br>
";
}
?>

kun ajan php-scriptiä suoraan (selaimeen http://localhost/testi.php) niin saan kyllä tavaraa ihan järkevästi, mutten millään saa sitä näkymään esim html-sivuni alalaidassa (tai missään muuallakaan).

Olen yrittänyt lähinnä seuraavaa (ja montaa muutakin)

<?php
include("testi.php");
?>

Miten tuo php file saadaan ajettua, jos ei tuolla includella?

KeKimmo [28.01.2005 15:04:59]

#

Oletko antanut html-sivusi tiedostopäätteeksi ".html" vai ".php"? Jos se on ".html", palvelin ei tajua etsiä siitä php-koodia.

esakom [28.01.2005 15:45:06]

#

Joo tuostahan se johtuikin. Kiitoksia paljon.

esakom [28.01.2005 17:36:31]

#

Vielä tuli uusi ongelma: käyn hakemassa hesarin uutisia osoitteesta: http://hs.subexit.com/.

Saadusta linkistä pääsee hesarin sivulle lukeman haluttua uutista. Kun nyt käyttäjä painaa selaimen "Edellinen" painiketta, ei hän pääsekään mihinkään, sillä ilmeisesti selain muistaa php-koodin edellisenä sivuna, joka sitten taas heti ohjaa takaisin ks. sivulle. Ymmärsinkö oikein? Mitä pitäisi korjata ja mistä että käyttäjä pääsisi kivasti takaisin?
(tilannetta voi tarkastella osoitteessa www.esakom.net)

Juice [28.01.2005 19:33:10]

#

En oikein ymmärtänyt. Kun klikkasin uutista "Lumityöt rasittavat miehen sydäntä", pääsin kyllä ihan back-painikkeella takaisin...

esakom [28.01.2005 19:59:26]

#

Jaa onkohan tämä joku selainriippuvainen ongelma... mikä selain sulla on juice? Näköjään firefoxilla ei ole ongelmaa! Osaisiko joku kertoa miten ongelma poistettaisiin ie:n käyttäjiltä? (kun kaikki ei kuitenkaan selaintaan vaihda)

kayttaja-2791 [28.01.2005 21:50:18]

#

Iframella toteutit, siitä varmaankin ongelmat. Mikset vain vaihda etusivun tiedostopäätettä .php?

esakom [28.01.2005 22:31:52]

#

sitten kai joutuisin tekemään index.html-sivun joka avaisi index.php-sivun.

Ratkaisin nyt ainakin toistaiseksi avaamalla uuden ikkunan uutista varten.

Juice [28.01.2005 23:36:38]

#

Käytän siis Firefoxia.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta