رتبه موضوع:
  • 2 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
محاسبه تعداد صفحات پیامک (حل شد)
#1
سلام دوستان
چطور میشه تعداد صحات پیامک رو با PHP چک کرد؟
کد جاوا اسکریپتش هست
اما پی اچ پی رو ندیدم
پاسخ
تشکر شده توسط:
#2
اگر بخواهی با php طول یک متن رو بدست بیاری صفحه حتما باید رفرش بشه
تابع count در php تعداد کارکترهای موجود در یک رشته را می شمارد
یه برنامه نویس دنیاش کدنویسی هست
پاسخ
تشکر شده توسط:
#3
ببخشید ها ولی خدایی سوال رو خوندی؟!
میگم نحوه حساب کردن صفحات رو با جاوااسکریپت دارم
منتها با php نمیتونم درست بشمارم
قانونش چطوریه
پاسخ
تشکر شده توسط:
#4
دوست عزیز فکر میکنم که شما سوالتون رو درست مطرح نکردید. در رابطه با شمردن صفحات پیامک خب شما متن پیامک رو تویه متغیر میریزید و تعداد کارکتر هاشو میشمارید و تقسیم بر مثلا 70 میکنید و با یک جمع میکنید تا تعداد صفحات بدست بیاد
پاسخ
تشکر شده توسط:
#5
نه عزیز دلم
اینطوری نیست!
چون همشون ۷۰ تایی نیستن
قانون داره
پاسخ
تشکر شده توسط:
#6
باید با RegExp چک کنید اگه حتی یک کارکتر فارسی داخلش باشه هر 70 کارکتر رو یک صفحه درنظر بگیرین و اگه نبود (فقط حروف و اعداد لاتین بود) هر 160 کارکتر رو یک پیام محسوب کنید.
پاسخ
تشکر شده توسط:
#7
میدونید دوستان
راه حلش رو یافتم
توی پیامک ها اگر فارسی تایپ کنید تعداد صفحات رو برای صفحه اول تا 70 کارکتر حساب می کنه و اگر بیش از دو صفحه شد در هر صفحه 3 تا کم می کنه از 70 تا یعنی میشه 67 کارکتر
و اگر لاتین باشه که صفحه اول رو 160 تا و مابقی را (160-7) که میشه 153 کارکتر حساب میکنه
پس بنا براین این تابع رو نوشتم
برای دوستانی که شاید مثل من دنبال یه همچین مطلبی باشند
موفق باشید
public function isSmscounts($str)
 {
    if (strlen(utf8_decode($str)) == 0)//If Text Length == 0
        $smsCount = 1;//ِDefault Sms Counts 
//Check For Farsi Text
    $isPersian  = (!preg_match('/^[^\x{600}-\x{6FF}]+$/u', str_replace("\\\\","",$str)));
    $maxLen     = 0;//Default Max Length
    $msgLen     = strlen(utf8_decode($str));//Calculate Sms Length
    $fa_diff    = 3;//Diffrent Farsi page
    $en_diff    = 7;//ِDiffrent English page
    $unitLength = ($isPersian? 70 : 160);//Uint Length
    //Check For Pages
    if ($msgLen > $unitLength) 
    {
    if ($isPersian)
    $unitLength = $unitLength - $fa_diff;
    else
    $unitLength = $unitLength - $en_diff;
    }
    //Final Calculate  
    $smsCount = ceil($msgLen / $unitLength);
    //Return 
    return $smsCount;
}
پاسخ
تشکر شده توسط: ADMIN , civilz




کاربران در حال بازدید این موضوع: 1 مهمان