Warning: strpos() [function.strpos]: Offset not contained in string in

Fruitgum

Erfahrenes Mitglied
Hallo,

mein code:

PHP:
<?
	include 'config.php';
	$sql = "SELECT `ID`,`post_title`, `guid`, `post_content` FROM `wp_posts` WHERE `post_type`='post' AND `post_status`='publish'  ORDER BY post_date DESC LIMIT 0,1"; 
	$query = mysql_query($sql); 
	while($row = mysql_fetch_assoc($query)) 
	{  
	$link = $row['guid']; 
	$title = $row['post_title']; 
	$text = $row['post_content'];
	
	echo "<dl class=\"box2\">\n";
	echo "<a href=\"". $link ."\">".$title."</a>";
	echo "<dd>".substr($text, 0,  strpos($text, ".", 100))."...</dd><a href=\"". $link ."\">Weiter</a></dd>";
	echo "<br><br><br></dl>\n";

}
?>

Das ist eine Ausgabe für den letzten Artikel eines Wordpress-Bloges. Das funktioniert auch. Es soll nach 100 Zeichen zum nächsten Punkt gehen und dann Weiterlesen ermöglichen. Jetzt besteht der Eintrag im Blog aus nur einem Eintrag und das ist auch noch ein Link.

jetzt habe ich folgenden Fehler im Bereich wo der Text ausgegeben werden soll.

Warning: strpos() [function.strpos]: Offset not contained in string in

Der Titel und Weiterlesen funktionieren! Nun weiß ich nicht an was es liegt. Vielleicht daran das der Eintrag weniger als 100 Zeichen besitzt oder weil es nur eine http:// Adresse (link) ist!?


Grüße....
 
PHP:
if(strlen($text) > 100){
   echo "<dd>".substr($text, 0,  strpos($text, ".", 100))."...</dd><a href=\"". $link ."\">Weiter</a></dd>"; 
}else {
    echo "<dd>".substr($text, 0,  strpos($text, ".", strlen($text)))."...</dd><a href=\"". $link ."\">Weiter</a></dd>"; 
}
 
Danke! ging erst nicht.. habst dann so gemacht:

PHP:
<?
	include 'config.php';
	$sql = "SELECT `ID`,`post_title`, `guid`, `post_content` FROM `wp_posts` WHERE `post_type`='post' AND `post_status`='publish'  ORDER BY post_date DESC LIMIT 0,1"; 
	
	$query = mysql_query($sql); 
	while($row = mysql_fetch_assoc($query)) 
	{  
	$link = $row['guid']; 
	$title = $row['post_title']; 
	$text = $row['post_content'];
	
	
	echo "<dl class=\"box2\">\n";
	echo "<a href=\"". $link ."\">".$title."</a>";
	
	if(strlen($text) > 100){ 
     	
echo "<dd>".substr($text, 0,  strpos($text, ".", 100))."...</dd><a href=\""$link ."\">Weiter</a></dd>";  
}else { 
echo "<dd>".substr($text, 0, 125)."</dd><a href=\"". $link ."\">Weiter...</a></dd></dd>";  
} 
	echo "<br><br><br></dl>\n";



}
?>


Danke dir! ;-)
 
EOF wahrscheinlich vergessen ;)

PHP:
if(strlen($text) > 100){
   echo "<dd>".substr($text, 0,  strpos($text, ".", 100))."...</dd><a href=\"". $link ."\">Weiter</a></dd>"; 
}else {
    echo "<dd>".substr($text, 0,  strpos($text, ".", (strlen($text)+1)))."...</dd><a href=\"". $link ."\">Weiter</a></dd>"; 
}
 
Zuletzt bearbeitet von einem Moderator:
Jup, geht!

wie mache ich das nun mit PHP, wenn ich möchte das sagen wir nach 30 Zeichen ein Zeilenumbruch stattfindet, quasi eine neue zeile beginnen soll. Sicher kann man das anders lösen, aber ich möchte sehen wie man das mit PHP machen kann.


Grüße
 
Zurück