Gå til innhold

trenger hjelp med å putte en substr inn i en kode.


Anbefalte innlegg

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
Videoannonse
Annonse

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 av JohndoeMAKT
Lenke til kommentar

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 :whistle:

Endret av Airborne
Lenke til kommentar
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

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 av JohndoeMAKT
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...