View Full Version : مشکل عجیب در تابع strlen!
trasilver
شنبه 16 فروردین 1393, 22:12 عصر
سلام خدمت دوستان عزیز.
این تابع چرا می زنه 17 حرف؟؟؟؟
<?php
echo strlen('سلام خوبی');
?>
مگه این 9 حرف نیست؟؟
trasilver
شنبه 16 فروردین 1393, 22:17 عصر
دوستان عزیز شرمنده. مشکل رفع شد باید مثل زیر نوشته بشه:
<?php
echo strlen(utf8_decode('سلام خوبی'));
?>
SilverLearn
شنبه 16 فروردین 1393, 22:25 عصر
درود
این تابع به همراه مثال های استفاده از کاراکترهای utf8 در آدرس زیر موجود هست
http://ir1.php.net/strlen
موفق باشید
hamedarian2009
شنبه 16 فروردین 1393, 23:40 عصر
اینجوری استفاده کنید بهتره
echo mb_strlen('سلام خوبی','UTF8');
MMSHFE
یک شنبه 17 فروردین 1393, 04:33 صبح
سلام خدمت دوستان عزیز.
این تابع چرا می زنه 17 حرف؟؟؟؟
<?php
echo strlen('سلام خوبی');
?>
مگه این 9 حرف نیست؟؟
راه حل صحیح استفاده از mb_strlen هست که دوستان اشاره کردن ولی اگه میخواین علت اینکه چرا میگه 17 حرف رو بدونید، دلیلش اینه که strlen تعداد بایتها رو میشماره و چون حروف فارسی Unicode هستن، درنتیجه سلام 8 بایت و خوبی هم 8 بایت فضا میگیره و Space همون یک بایت رو اشغال میکنه که در مجموعه میشه 17 بایت ولی نسخه MultiByte این تابع یعنی mb_strlen حواسش به کدگذاری حروف هست.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.