Aftermath Posted May 18, 2006 Share Posted May 18, 2006 Hello, I'm working on creating a blog and I need a hand. Right now, I have the entry being called from the database and being displayed in a table. [code]while($row = mysql_fetch_array($result)) { $date = date("l F d Y", $row['timestamp']); $title = $row['title']; $entry = $row['entry']; $name = $row['username']; $id = $row['id']; ?> <table width="100%" align="left"><tr><td><u> <?php echo $title; ?></u></td><td align="right"> <?php echo $date; ?></td></tr><tr><td colspan="2"><b><?php echo $name; ?></b></td></tr><tr><td colspan="2"> <?php echo $entry; ?></td></tr><tr><td colspan="2"><br /></td></tr><tr><td colspan="2"><a href="blog_entries.php?id=<?php echo $id; ?>">View Post</a></td><tr><td colspan="2"><HR WIDTH="100%"></td></tr></table><br /> <?php}?>[/code]I was wondering how would I go about making it only display, say the first 150 characters of the enrty? Quote Link to comment https://forums.phpfreaks.com/topic/9889-displaying-only-part-of-a-string/ Share on other sites More sharing options...
litebearer Posted May 18, 2006 Share Posted May 18, 2006 Try this in your script[code]<?PHPfunction truncate_string($details,$max){ if(strlen($details)>$max) { $details = substr($details,0,$max); $i = strrpos($details," "); $details = substr($details,0,$i); $details = $details." ..... "; } return $details;}$text = truncate_string("hello there. This is a long string",19);?> [/code]returnshello there. This ..... Quote Link to comment https://forums.phpfreaks.com/topic/9889-displaying-only-part-of-a-string/#findComment-36766 Share on other sites More sharing options...
Aftermath Posted May 18, 2006 Author Share Posted May 18, 2006 Thanks a lot! It worked ^_^ Could you possibly explain it so I know what it means?[code]function truncate_string($details,$max){ if(strlen($details)>$max) { $details = substr($details,0,$max); $i = strrpos($details," "); $details = substr($details,0,$i); $details = $details." ..... "; } return $details;}while($row = mysql_fetch_array($result)) { $date = date("l F d Y", $row['timestamp']); $title = $row['title']; $entry = truncate_string($row['entry'],20); $name = $row['username']; $id = $row['id'];[/code] Quote Link to comment https://forums.phpfreaks.com/topic/9889-displaying-only-part-of-a-string/#findComment-36768 Share on other sites More sharing options...
litebearer Posted May 18, 2006 Share Posted May 18, 2006 Ok, here we go, line by line...[code]function truncate_string($details,$max){[/code]obviously, this first line says "let's make a function named truncate_string; and it will need two pieces of information to do its job. The first is a variable named $details which contains the string/text we want to truncate/shorten. $max is the maximum length of text we want from the string.[code] if(strlen($details)>$max) {[/code]This line checks to make sure that the original string is longer than the max length we are looking to create.[code] $details = substr($details,0,$max);[/code]This line takes a slice off of the original string ($details). the slice starts at the beginning (the 0) and is $max characters long. The original string/text is then replaced with the slice ($details =).[code] $i = strrpos($details," ");[/code]This line checks to see where the last space is located in our new string. The reason for this is to make sure we didn't cut a word in the middle.[code] $details = substr($details,0,$i);[/code]This line uses the information from the previous line to actually make the string end with a full word.[code] $details = $details." ..... "; }[/code]This line simply adds some periods to the end of our new string to indicate to a reader that there is more text to follow.[code] return $details;}[/code]This last line of our function simply passes our new string back to our script[code]$text = truncate_string("hello there. This is a long string",19);[/code]This demonstrates how you could use the function in a script.Hope this isn't too muddy.Lite... Quote Link to comment https://forums.phpfreaks.com/topic/9889-displaying-only-part-of-a-string/#findComment-36789 Share on other sites More sharing options...
Aftermath Posted May 18, 2006 Author Share Posted May 18, 2006 That makes sense. The 'i' part was a little confusing to me before. Thanks for all the help mate :) Quote Link to comment https://forums.phpfreaks.com/topic/9889-displaying-only-part-of-a-string/#findComment-36795 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.