PDA

View Full Version : سوال: چطوری برای عنوان های طولانی سه نقطه بزاریم ؟



mamali-mohammad
دوشنبه 05 اردیبهشت 1390, 14:30 عصر
سلام
خوبید دوستان ؟

آقا فرض کنیم یه کادر داریم که 250 پیکسل طولشه
حالا اگه متن ها طولانی باشه ، در نتیجه کادرو میشکنه
حالا میخوام یه دستور بدیم که اگه متن از کادر طولانی تر بود ، ... بزاره
مثلا :

این یک متن تست برای عنوان می باشد
بشه :
این یک متن تست برای ...

UnnamE
دوشنبه 05 اردیبهشت 1390, 14:59 عصر
و اما اميرحسين
تابع کوتاه سازی متن (http://boplo.ir/php/summarize-texts/)

mamali-mohammad
دوشنبه 05 اردیبهشت 1390, 15:42 عصر
ممنونم
میشه یه مثال هم بزنی ؟

Metal Gear Solid
دوشنبه 05 اردیبهشت 1390, 17:39 عصر
من قدیما از این تابع که نوشتم استفاده میکردم...
البته به پیشرفتگی این تابع که دوستمون گذاشتن نیست اما جواب میده...

function etc_text( $text, $limit_length )
{

$LimitText = '';
$Spr = str_split( $text );
for( $i = 0; $i <= strlen( $text ); $i++ )
{
if( $i < $limit_length )
$LimitText = $LimitText.$Spr[$i];
elseif( $i > $limit_length )
{
$LimitText = $LimitText." ... ";
break;
}

}

return $LimitText;

}

$text = "PHP is a general-purpose scripting language originally designed for web development to produce dynamic web pages.";
print etc_text($text,20);

tem988
دوشنبه 05 اردیبهشت 1390, 18:18 عصر
$str = 'in ye nemone kotah kardan matn ast';

echo substr($str ,0 ,18); //echo in ye nemone kotah

Cyletech
سه شنبه 06 اردیبهشت 1390, 15:24 عصر
tem988 جان بهتره بجای substr از mb_substr استفاده کنید که کاراکتر های فارسی رو هم پشتیبانی کنه. خودم یه نمونه کد ساده براتون می نویسم:

//momkene matn daraye tag haye html bashe pas bayad hazf beshan
$text = 'alireza eskandarpour<br/>We love PHP';
$notag = strip_tags($text);
$strpos = mb_strpos($notag, $text, false, 'UTF-8' );
$final = mb_substr( $notag, $strpos, 150, 'UTF-8' ) . ' ...';
return $final;