rasivell

مشکلی در کات کردن عنوان مطالب (substr)

6 پست در این موضوع قرار دارد

سلام ، طبق کدی که قبلا متضی جان معرفی کرده بود برای نمایش دادن و شمردن ، میزان بازدید از پست ؛ بعد ها در ادامه اش کدی هم داد که بتونیم مثلا چند پست پر بازدید رو هم نشون بدیم! که من از اون کد به شرح زیر استفاده میکنم:


<?php
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10');
if (have_posts()) : while (have_posts()) : the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php
if (strlen($post->post_title) > 85)
{
echo substr(the_title($before = '', $after = '', FALSE), 0, 84) , '...';
}
else { the_title(); }
?>
</a>
</li>
<?php

توی بخشی از این دستور ، گفته شده که اگر عنوان مطلبی که داری نشون میدی ، بیشتر از 85 کاراکتر بود ، شما باقیشو پاک کن و کلا 84 نشون بده در ادامه اش ... بزار!

ولی ما با این دستور یه مشکلی داریم! و اونم اینه که اگر تو عنوان پست ، حروف انگلیسی و فارسی باشه ، قاطی میکنه! اولویت رو به حروف انگلیسی میده و اونارو میشماره و فارسی هاشون رو نه !! (فارسی تنهارو درست میشموره ها! ولی باهم باشن فقط انگلسی رو میشماره!) و این میشه که بجای اینکه کات کنه حرف رو 84 تاشون نشون بده ، کل رو نشون میده!! یعنی نمیتونه بشماره وقی تو عنوانش انگلسی و فارسی باهم باشه!

حالا ، به نظر من اشکال از دستور substr هستش!! عزیزان حرفه ای ، راه حلی برای این دستور دارید؟ که دقیقا کات کنه نوشته های بلند رو!؟

0

به اشتراک گذاری این پست


لینک به پست

سلام ، طبق کدی که قبلا متضی جان معرفی کرده بود برای نمایش دادن و شمردن ، میزان بازدید از پست ؛ بعد ها در ادامه اش کدی هم داد که بتونیم مثلا چند پست پر بازدید رو هم نشون بدیم! که من از اون کد به شرح زیر استفاده میکنم:


<?php
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10');
if (have_posts()) : while (have_posts()) : the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php
if (strlen($post->post_title) > 85)
{
echo substr(the_title($before = '', $after = '', FALSE), 0, 84) , '...';
}
else { the_title(); }
?>
</a>
</li>
<?php

توی بخشی از این دستور ، گفته شده که اگر عنوان مطلبی که داری نشون میدی ، بیشتر از 85 کاراکتر بود ، شما باقیشو پاک کن و کلا 84 نشون بده در ادامه اش ... بزار!

ولی ما با این دستور یه مشکلی داریم! و اونم اینه که اگر تو عنوان پست ، حروف انگلیسی و فارسی باشه ، قاطی میکنه! اولویت رو به حروف انگلیسی میده و اونارو میشماره و فارسی هاشون رو نه !! (فارسی تنهارو درست میشموره ها! ولی باهم باشن فقط انگلسی رو میشماره!) و این میشه که بجای اینکه کات کنه حرف رو 84 تاشون نشون بده ، کل رو نشون میده!! یعنی نمیتونه بشماره وقی تو عنوانش انگلسی و فارسی باهم باشه!

حالا ، به نظر من اشکال از دستور substr هستش!! عزیزان حرفه ای ، راه حلی برای این دستور دارید؟ که دقیقا کات کنه نوشته های بلند رو!؟

سلام

بهتره بجای substrاز MB_substr استفاده بشه...

3

به اشتراک گذاری این پست


لینک به پست

جواب نداد!!!

شاید باید هر دو دستور strlen و substr به دو دستور دیگه تغیر کنند!

همه جوره تستش کردم نشد!

0

به اشتراک گذاری این پست


لینک به پست

مشکلم حل شد با تغیر دو مساله فوق به این صورت:

substr به mb_substr و strlen به mb_strlen

متشکر از دوستان

0

به اشتراک گذاری این پست


لینک به پست

از mb_strlen , mb_substr استفاده کنید

http://www.php.net/manual/en/function.mb-strlen.php

2

به اشتراک گذاری این پست


لینک به پست

از mb_strlen , mb_substr استفاده کنید

http://www.php.net/m...n.mb-strlen.php

بله پارسا جان همون کارو کردم! :lol:

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری