رفتن به مطلب

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


پست های پیشنهاد شده

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


<?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 هستش!! عزیزان حرفه ای ، راه حلی برای این دستور دارید؟ که دقیقا کات کنه نوشته های بلند رو!؟

لینک به ارسال

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


<?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 استفاده بشه...

لینک به ارسال

جواب نداد!!!

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

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

لینک به ارسال

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

substr به mb_substr و strlen به mb_strlen

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...