Airborne Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Hei, jeg kan nesten ingenting om php, og derfor trenger jeg litt hjelp. Jeg bruker et php script som laster inn rss fra diverse sider og viser tittelen på nyhetene i en liste. // Show last published articles (title, link, description) echo "<ul>\n"; foreach($rs['items'] as $item) { echo "\t<li><a href=\"$item[link]\" target=\"_blank\">".$item['title']."</a></li>\n"; } echo "</ul>\n"; Inn i denne koden trenger jeg enn substr kode, en kammerat hjalp meg med dette en gang i tiden, problemet er at han er på ferie i utlandet akkurat nå. Koden han ga meg for ett tidligere script er <?php if(strlen($title) > 20) { echo trim(substr($title, 0, 20)) . "..."; }else { echo $title; } ?> Så det jeg trenger hjelp til er å putte denne koden inn i koden over, mellom <li> </li> Takk på forhånd Lenke til kommentar
JohndoeMAKT Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 (endret) Her er min "dialekt" som avviker en del fra din. Jeg syntes å echoe HTML er uleselig så jeg skriver heller HTML med PHP i stedet for det motsatte. <ul> <?php foreach( $rs['items'] as &$item ) { ?> <li> <a href="<?= $item['link'] ?>" target="_blank"><?= strlen( $item['title'] ) > 20 ? substr( $item['title'], 0, 20 ) : $item['title'] ?></a> </li> <?php } ?></ul> EDIT : Her er to andre måter å skrive dette på, den ene ved å bruke en vanlig if-blokk og den andre ved å bruke en "cond ? true : false"-blokk. echo "<ul>\n"; foreach( $rs['items'] as $item ) { echo "\t<li><a href=\"$item[link]\" target=\"_blank\">" . ( strlen( $item['title'] ) > 20 ? substr( $item['title'], 0, 20 ) : $item['title'] ) . "</a></li>\n"; } echo "</ul>\n"; echo "<ul>\n"; foreach( $rs['items'] as $item ) { echo "\t<li><a href=\"$item[link]\" target=\"_blank\">"; if ( strlen( $item['link'] ) > 20 ) { echo substr( $item['link'] ); } else { echo $item['link']; } echo "</a></li>\n"; } echo "</ul>\n"; Endret 21. juli 2008 av JohndoeMAKT Lenke til kommentar
Airborne Skrevet 21. juli 2008 Forfatter Del Skrevet 21. juli 2008 (endret) Hvordan legger jeg den koden inn i denne fila: <? // include lastRSS library if(!class_exists('lastRSS')) { include './lastrss.php'; } // create lastRSS object $rss = new lastRSS; // setup transparent cache $rss->cache_dir = './cache'; $rss->cache_time = 3600; // one hour // Limit $rss->items_limit = 3; // load some RSS file if ($rs = $rss->get('http://www.wowinsider.com/rss.xml')) { // Show last published articles (title, link, description) echo "<ul>\n"; foreach($rs['items'] as $item) { echo "\t<li><a href=\"$item[link]\" target=\"_blank\">".$item['title']."</a></li>\n"; } echo "</ul>\n"; } else { echo ('RSS file not found.'); } ?> Mitt forsøk resulterte i parse error Endret 21. juli 2008 av Airborne Lenke til kommentar
JohndoeMAKT Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Kodeblokk nr.2 skal du kunne lime ganske direkte inn, prøv den heller. Lenke til kommentar
Airborne Skrevet 21. juli 2008 Forfatter Del Skrevet 21. juli 2008 Kodeblokk nr.2 skal du kunne lime ganske direkte inn, prøv den heller. Parse error: syntax error, unexpected ';' på denne linjen: echo "\t<li><a href=\"$item[link]\" target=\"_blank\">" . ( strlen( $item['title'] ? substr( $item['title'], 0, 1 ) : $item['title'] ) . "</a></li>\n"; Lenke til kommentar
JohndoeMAKT Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 (endret) Min stil, omtrent validerende også hvis jeg ikke har blinkset helt. <?php if ( !class_exists( 'lastRSS' ) ) { include( dirname( __FILE__ ) . '/lastrss.php'; } $rss = new lastRss; $rss->cache_dir = dirname( __FILE__ ) . '/cache'; $rss->cache_time = 3600; $rss->items_limit = 3; ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> <title>RSS</title> </head> <body> <div> <?php if ( $rs = $rss->get( 'http://www.wowinsider.com/rss.xml' ) ) { ?> <ul> <?php foreach( $rs['item'] as &$item ) { ?> <li> <a href="<?= $item['link']" target="_blank"><?= strlen( $item['link'] ) > 20 ? substr( $item['link'] ) : $item['link'] ?></a> </li> <?php } ?> </ul> <?php } else { ?> <p>RSS file not found</p> <?php } ?> </div> </body> </html> Endret 21. juli 2008 av JohndoeMAKT Lenke til kommentar
Airborne Skrevet 21. juli 2008 Forfatter Del Skrevet 21. juli 2008 Kan vi holde det litt simpelt? Som posten min før din siste sier, så fikk jeg en error. trenger igjen hjelp Lenke til kommentar
JohndoeMAKT Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Sure: <?php // include lastRSS library if(!class_exists('lastRSS')) { include './lastrss.php'; } // create lastRSS object $rss = new lastRSS; // setup transparent cache $rss->cache_dir = './cache'; $rss->cache_time = 3600; // one hour // Limit $rss->items_limit = 3; // load some RSS file if ($rs = $rss->get('http://www.wowinsider.com/rss.xml')) { // Show last published articles (title, link, description) echo "<ul>\n"; foreach( $rs['items'] as &$item ) { echo "\t<li><a href=\"$item[link]\" target=\"_blank\">" . ( strlen( $item['title'] ) > 20 ? substr( $item['title'], 0, 20 ) : $item['title'] ) . "</a></li>\n"; } echo "</ul>\n"; } else { echo ('RSS file not found.'); } ?> Lenke til kommentar
Airborne Skrevet 21. juli 2008 Forfatter Del Skrevet 21. juli 2008 Takk, dette fungerte Har du mulighet til å vise meg hvordan jeg legger til "..." etter teksten? Lenke til kommentar
JohndoeMAKT Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Du ser hvor dette skal inn. ( strlen( $item['title'] ) > 20 ? substr( $item['title'], 0, 20 ) . '..' : $item['title'] ) Lenke til kommentar
Airborne Skrevet 21. juli 2008 Forfatter Del Skrevet 21. juli 2008 Du ser hvor dette skal inn. ( strlen( $item['title'] ) > 20 ? substr( $item['title'], 0, 20 ) . '..' : $item['title'] ) Takk så mye! setter stor pris på hjelpen Her er er siden med rss resultatet. Lenke til kommentar
TheClown Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Jøss. Det så skikkelig bra ut! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå