Jump to content

php substr title


jalmz

Recommended Posts

Hi guys,

 

I would like to ask your help on how to trim the output (title). for example the title is "php freaks rocks" it should be "php freaks..."

 

Thanks..

 

<?php
$Url_Path = "";       
$data_dir = "" ;
$images_dir =$Url_Path."/images/";                       
$rel_dir = "";                              
                                                    
//Database Setting 
//You must change these values in order to run this script 
//These value are not visible in the output page source 
$host = "";        //Server Name 
$user= "";                  //Username 
$password= "";              //Password 
$database="";               //Photopost database name or forum database name 
//Display Setting (Changes to fit your page) 
$q_switch = "latest";            // "random" or "most_views" or "latest" 
$limit = 3;                        //number of image to show 
// CSS Setting (optional) 
$class_photopost = ""; 
$class_gallery = "gallery"; 
// ************************************************************************* 
// ************************************************************************* 
///////////don't edit below this line if you are too afraid to kill the code////////////// 
// ---------------------- THESE FUNCS FROM pp-inc ----------------- 
function mysql_query_eval( $query, $database ) { 
    global $Globals; 
    $mysql_eval_error=""; 
    $mysql_eval_result = mysql_query($query, $database) or $mysql_eval_error = mysql_error(); 
    if ($mysql_eval_error) { 
        if ( $Globals{'debug'} == 1 ) { 
            $letter = "An error was encountered during execution of the query:\n\n"; 
            $letter .= $query."\n\n"; 
            $letter .="The query returned with an errorcode of: \n\n$mysql_eval_error\n\n"; 
            $letter .= "If you need assistence or feel this is a 'bug'; please report it to our "; 
            $letter .= "support forums at: http://www.techimo.com/forum/f27/index.html\n\n"; 
            $letter .= "To turn off these emails, set \$debug=0 in your config-inc.php file."; 
            $email = $Globals{'adminemail'}; 
            $email_from = "From: ".$Globals{'adminemail'}; 
            $subject="Subject: ".$Globals{'webname'}." MySQL Error Report"; 
            $subject=trim($subject); 
            mail( $email, $subject, $letter, $email_from ); 
        } 
        elseif ( $Globals{'debug'} == 2 ) { 
            dieWell( "MySQL error reported!<p>Query: $query<p>Result: $mysql_eval_error<p>Database handle: $database" ); 
            exit; 
        } 
        return FALSE; 
    } 
    else { 
        return $mysql_eval_result; 
    } 
} 
function get_ext( $filename ) { 
    $photolen = strlen($filename); 
    $RetVal = substr( $filename, $photolen-3, $photolen); 
    return $RetVal; 
} 
function get_filename($filename) { 
    // strip off the last 4 
    $len = strlen( $filename )-4; 
    $RetVal = substr( $filename, 0, $len); 
    return $RetVal; 
} 
// ---------------------- THESE FUNCS FROM pp-inc ----------------- 
// Connecting, selecting database 
$link = mysql_connect ("$host", "$user", "$password") or die ('I cannot connect to the database.'); 
mysql_select_db ("$database")or die("Could not select database"); 
// Here is the hacked up display_gallery($q_switch) 
    $catquery=""; 
    if ( IsSet($cat) ) { 
        $querya="SELECT catname FROM photopost_categories WHERE id=$cat"; 
        $catq = mysql_query_eval($querya,$link); 
        $catr = mysql_fetch_array($catq); 
        $catname = $catr['catname']; 
        mysql_free_result($catq); 
        $queryb = "SELECT id FROM photopost_categories WHERE parent='$cat' ORDER BY catorder ASC"; 
        $boards = mysql_query_eval($queryb,$link); 
        $cnt=0; 
        while ( $row = mysql_fetch_array($boards, MYSQL_ASSOC)) { 
            $catqid = $row['id']; 
            if ( $cnt == 0 ) { 
                $cnt=1; 
                $catquery .= "$catqid"; 
            } 
            else { 
                $catquery .= ",$catqid"; 
            } 
        } 
        mysql_free_result($boards); 
    } 
// Connecting, selecting database 
// Selecting method and Perform SQL query 
    switch ($q_switch) { 
        case "most_views": 
            if ( !IsSet($cat) ) { 
                $group_title = "Most Popular Images - All Categories"; 
                $query = "SELECT id,user,userid,cat,title,bigimage,views FROM photopost_photos WHERE bigimage!='' AND approved='1' $exclude_cat ORDER BY views DESC LIMIT $limit"; 
            } 
            else { 
                $query = "SELECT id,user,userid,cat,title,bigimage,views FROM photopost_photos WHERE bigimage!='' AND approved='1' $exclude_cat AND cat in ($catquery) ORDER BY views DESC LIMIT $limit"; 
                $group_title = "Most Popular Images - $catname"; 
            } 
            break; 
        case "latest": 
            if ( !IsSet($cat) ) { 
                $group_title = "Most Recent Images - All Categories"; 
                $query = "SELECT id,user,userid,cat,title,bigimage,views FROM photopost_photos WHERE bigimage!='' AND approved='1' $exclude_cat ORDER BY date DESC LIMIT $limit"; 
                break; 
            } 
            else { 
                $group_title = "Most Recent Images - $catname"; 
                $query = "SELECT id,user,userid,cat,title,bigimage,views FROM photopost_photos WHERE bigimage!='' AND approved='1' $exclude_cat AND cat in ($catquery) ORDER BY date DESC LIMIT $limit"; 
                break; 
            } 
            break; 
        default: 
            if ( !IsSet($cat) ) { 
                $group_title = "Random Images - All Categories"; 
                $query = "SELECT id,user,userid,cat,title,bigimage,views FROM photopost_photos WHERE bigimage!='' AND approved='1' $exclude_cat ORDER BY RAND() DESC LIMIT $limit"; 
                break; 
            } 
            else { 
                $group_title = "Random Images - $catname"; 
                $query = "SELECT id,user,userid,cat,title,bigimage,views FROM photopost_photos WHERE bigimage!='' AND approved='1' $exclude_cat AND cat in ($catquery) ORDER BY RAND() DESC LIMIT $limit"; 
                break; 
            } 
            break; 
    } 
$i = 1; 
$e = 2; 
$col_val = $column; 
  $result = mysql_query_eval($query,$link) or die("Query failed"); 
print "<ul class=\"".$class_gallery."\"> "; 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $photo_name = get_filename( $line['bigimage'] ); 
     print "<li>"; 
            $theext = get_ext( $line['bigimage'] ); 
            $thecat = $line['cat']; 
            $temp_user = ($line["userid"]); 
            $filepath = "$data_dir"."$thecat/thumbs/$photo_name.$theext";
            $image_stats = getimagesize( $filepath );
            $width = $image_stats[0];
            $height = $image_stats[1]; 
            $rel_path = "$rel_dir"."$thecat/thumbs/$photo_name.$theext"; 
             print "<a  class=\"".$class_photopost."\" href=\"$Url_Path"."showphoto.php?photo=".$line['id']. "\" title=\"".$line["title"]."\">"; 
            if ( file_exists( $rel_path ) ) 
                 print "<img src='$filepath' alt='$filepath' width='$width' height='$height' /></a>"; 
            else 
                 print "<img src='".$images_dir."nothumb.gif' alt='$filepath' width='$width' height='$height' /></a>"; 
        
  if ($q_switch == "most_views") {          
         print "<br />".$line["title"]."<br />".$line["views"]." views";    
         print "</a>"; 
   } else { 
         print "<br /> <a  class=\"".$class_photopost."\" href=\"$Url_Path"."showphoto.php?photo=".$line['id']. "\" title=\"".$line["title"]." ".$line["views"]." views\">  ".$line["title"]."<br />".$line["views"]." views";   
         print "</a></li>"; 
   } 
     }
print "    </ul> "; 
// Closing connection 
mysql_close($link); 
// mysql_close($db_link); 
?>

Link to comment
https://forums.phpfreaks.com/topic/247707-php-substr-title/
Share on other sites

$title = 'PHP freaks Rocks';

$title = substr($title,0,strrpos($title,' '));

echo $title;

 

You should define what your character limit is first, so you know if the title needs chopping or not,

something like

if(strlen($title) > {
//... rest of code
}

 

or else, that code will also convert a shorter title like 'PHP freaks' into 'PHP' unnecessarily.

Link to comment
https://forums.phpfreaks.com/topic/247707-php-substr-title/#findComment-1271997
Share on other sites

you could create a function (so you can re-use it later on other situations)

function cutTitle($string) {
   if (strlen($string) >  {
       preg_match('/(.{' . 8 . '}.*?)\b/', $string, $matches);
       return rtrim($matches[1]) . '...';
   }
   else {
       return $str;
   }
}

 

 

then, instead of

print "<br />".$line["title"]."<br />".$line["views"]." views";

try something like

print "<br />".cutTitle($line['title'])."<br />".$line["views"]." views";

Link to comment
https://forums.phpfreaks.com/topic/247707-php-substr-title/#findComment-1272007
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.