النتائج 1 إلى 3 من 3

الموضوع: الى محترفين البرمجة باللغة العربية ارجو المساعدة

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Apr 2008
    المشاركات
    36

    الى محترفين البرمجة باللغة العربية ارجو المساعدة



    السلام عليكم

    لدي صفحة من ذات ترميز UTF-8 يستطيع العضو ادخال اسمو واريد ان اقسم الاسم الى احرف لكني ظهرت لي بعض المشاكل
    حاولت استخدام الامر
    str_split والامر
    chunk_split

    لكن لم يزبط الحال

    هذا هو الملف الرجاء حفظ الترميز UTF-8 والتجربة
    كود:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <?php
    $t= $_POST['textfield'];
    
    if ($t){
    	$ts = str_split($t);
    	print_r($ts);
    }
    
    // and I try to use 
    $chaine = chunk_split($t,"2","-"); //but the problem in the space 
    echo $chaine ; 
    
    ?>
    
    
    <form id="form1" name="form1" method="post" action="">
      <label>
      <input type="text" name="textfield" id="textfield" />
      </label>
      <label>
      <input type="submit" name="button" id="button" value="Submit" />
      </label>
    </form>
    
    </body>
    </html>
    واكون لكم من الشاكرين في حال قمتم بمساعدتي





    __________________
    تفضلو بزيارة موقع البسيط
    http://www.soofra.com


  2. #2
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    لا أدري إن كان هناك حلاً مختصراً لهذه المسألة، ما توصلت إليه لضيق الوقت هو التالي كمثال سريع على المطلوب:
    كود PHP:
    <?php

        $arr 
    = array();
        
    $txt 'أنا أشرف السمهوري';
        
    $len mb_strlen($txt'utf8');
        for (
    $x 0$x $len$x++) {
            
    $arr[] = mb_substr($txt$x1'utf8');
        }
        echo 
    implode('<br>'$arr);

    ?>
    يمكنك التعديل عليه كما شئت إن كان هو الكود المطلوب، وإن لم يكن سنتابع الأمر إن شاء الله لنصل إلى الحل ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  3. #3
    عضو شرف
    تاريخ التسجيل
    Mar 2003
    المشاركات
    1,899


    يوجد داله معروفه لفعل ذلك وممتازه جدا

    كود PHP:
    function str_split_php4_utf8($str) {
        
    $split=1;
        
    $array = array();
        for ( 
    $i=0$i strlen$str ); ){
            
    $value ord($str[$i]);
            if(
    $value 127){
                if(
    $value >= 192 && $value <= 223)
                    
    $split=2;
                elseif(
    $value >= 224 && $value <= 239)
                    
    $split=3;
                elseif(
    $value >= 240 && $value <= 247)
                    
    $split=4;
            }else{
                
    $split=1;
            }
                
    $key NULL;
            for ( 
    $j 0$j $split$j++, $i++ ) {
                
    $key .= $str[$i];
            }
            
    array_push$array$key );
        }
        return 
    $array;


    من خلال الكود الذي كتبته انت

    كود PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1

    -transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>

    <body>
    <?php
    $t
    $_POST['textfield'];

    if (
    $t){
        
    $ts str_split_php4_utf8($t);
        
    print_r($ts);
    }


    function 
    str_split_php4_utf8($str) {
        
    $split=1;
        
    $array = array();
        for ( 
    $i=0$i strlen$str ); ){
            
    $value ord($str[$i]);
            if(
    $value 127){
                if(
    $value >= 192 && $value <= 223)
                    
    $split=2;
                elseif(
    $value >= 224 && $value <= 239)
                    
    $split=3;
                elseif(
    $value >= 240 && $value <= 247)
                    
    $split=4;
            }else{
                
    $split=1;
            }
                
    $key NULL;
            for ( 
    $j 0$j $split$j++, $i++ ) {
                
    $key .= $str[$i];
            }
            
    array_push$array$key );
        }
        return 
    $array;

    ?>


    <form id="form1" name="form1" method="post" action="">
      <label>
      <input type="text" name="textfield" id="textfield" />
      </label>
      <label>
      <input type="submit" name="button" id="button" value="Submit" />
      </label>
    </form>

    </body>
    </html>






    __________________
    محلل لنظم المعلومات - ارسل لي رساله خاصه عبر المنتدى | join me on facebook / twitter
    php | flash&flex&air actionscript 2,3 | ajax&javascript | database pro Analyzer





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض