صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 19

الموضوع: دالة لعرض عدد معين من الكلمات

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2009
    المشاركات
    349

    دالة لعرض عدد معين من الكلمات



    بسم الله الرحمن الرحيم :

    السلام عليكم :

    قمت قبل قليل بكتابة هذه الدالة والتي تقوم بعرض عدد معين من الكلمات , فمثلا لو كان لدينا موضوع من 200 كلمة وأردنا أن نعرض فقط 50 كلمة في الصفحة الرئيسية ونكتب ( أكمل قرائة الموضوع ) الخ .. فهذة الدالة تفي بالغرض بأذن الله ..

    الدالة :
    كود PHP:
    // $s هو الموضوع ..
    // $n هو عدد الكلمات التي أريد أن تظهر ..
    // $u هو رابط الموضوع ..
    // $t هو عنوان الموضوع الذي يظهر في الرابط ..
      
    function words($s,$n,$u,$t){
            
    $str=explode(' ',$s);
            
    $count=(int)(count($str) > $n) ? $n :$count;
            
    $count= (count($str) < $n) ? count($str):$count;
            
    $input_words='';
            for(
    $i=0;$i<=$count;$i++) $input_words.=$str[$i].' ';
            return (
    $input_words.='...<a href="'.$u.'" title="'.$t.'">بقية الموضوع </a>');
            } 
    اسئل الله أن تفيدكم ..

    وبالطبع اذا كنتم تريدون عرض الموضوع في الرئيسية بدون وسوم html كما في بحث غوغل ..
    فاليكم هذا السطر البرمجي الذي وجدته في موقع php للامانة..
    كود PHP:
    // لنفترض أن الموضوع هو بالمتغير less
    // فالطريقة لازالة كل اكواد html الموجودة في هذا المتغير  هي الكود التالي :
    $less='<p>القدس في خطر ...</p>';
    $less=preg_replace('@<[\/\!]*?[^<>]*?>@si',' ',$less); 
    تطبيقي على هذه الدالة :
    php بالعربي

    هذا فما كان من توفيق فمن الله وحده وما كان من خطأ اونسيان فمني والشيطان .. والسلام عليكم .





    التعديل الأخير تم بواسطة root-system ; 09-03-2010 الساعة 07:39 PM
    __________________
    لا اله الا أنت سبحانك أني كنت من الظالمين-سبحان الله وبحمده سبحان الله العظيم.
    للمراسلة : h.3basy@gmail.com
    القدس


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    السلام عليكم ...

    افضل من ذلك ان تطلب من قاعدة البيانات فقط ما تريد.

    انا استعمل الطريقة التالية...
    تدخل الموضوع ... تدخل <hr> في اي مكان تريد قطع الجملة.
    ثم في دالة طلب القاعدة ...
    يمكنك ان تستعمل
    كود:
    SELECT * , SUBSTRING_INDEX( content,  '<hr>', 1 ) AS content
    			FROM art_articles
    هذه برأيي افضل مع انها ليست نفس طريقتك بالمرة - لكن افضل في بناء موقع ناجح اكثر.





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2009
    المشاركات
    349


    السلام عليكم :

    اخي مصالحة : انا لا اتعامل ابدا مع قواعد البيانات .. لا افهم فيها شيئا .. قواعد البيانات لدي هي الملفات . حيث اجد التعامل معها سهل جدا ...
    لذلك الأمر الذي كتبته لا يجُدي نفعاً معي .





    __________________
    لا اله الا أنت سبحانك أني كنت من الظالمين-سبحان الله وبحمده سبحان الله العظيم.
    للمراسلة : h.3basy@gmail.com
    القدس

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    اذا - لا بأس - لنأخذ الدالة التي كتبتها ونرى كيف يمكن ان نكتب دالة ناجحة أكثر ...
    لو فرضنا ان لنا نص بطول 1000 كلمة ... فهل تريد من حاسوبك أن يقوم بعمل مصفوفة فيها 1000 خانة فقط كي يستعمل اول 50 ؟؟؟

    لا - لكن يمكن تقسيم الجملة في الفراغ ال 50 ... وهكذا نحصل على المقطع وبه 50 كلمة. اي جد مكان الفراغ ال 50 بواسطة strpos ويمكنك اختصار العملية اذا خمنت أو فرضت ان معدل طول الكلمات 4.5 حرف - هكذا يجب ان تبحث عن الفراغ بعد الحرف ال 225 ... وبعدها قم بأخذ القسم الذي تريده بواسطة substr ...
    حتى لو لم تكن هذه الدالة ترجع 50 كلمة - وقد ترجع 48 أو 49 أو حتى 51 و 52 ... لكنها عبارة عن سطرين ... وقد تستغرق زمن اقل للعمل.

    اذا مرة ثانية ...
    نريد 50 كلمة
    نبحث عن مكان الفراغ بعد 50*4.5=225 بواسطة strpos
    نقسم الجملة بواسطة substr





    التعديل الأخير تم بواسطة massalha ; 10-03-2010 الساعة 01:49 AM
    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512


    بداية جزاك الله خيرا على هذا المجهود ..


    - يمكننا استخدام التعبيرات القيايسة في تقطيع الكلمات بناء على أي رمز أو رموز .. فهي أقوى و خفيفة في نفس الوقت
    كود PHP:
    $text 'kjhkh kjhkhk hhhhh    hhhhhh hhhh kkkkk jj jjjk kkk';

    $words preg_split("/[ \t]/",$text,5);

    array_pop($words); 
    * حيث 5 هي عدد الكلمات + 1
    * يمكن استخدام explode بدلا من preg_split اذا لم نحتاج للتعبيرات القياسية

    - لإزالة وسوم html يمكن استخدام دالة strip_tags
    كود PHP:
    $text strip_tags('<p>القدس في خطر ...</p>'); 






    __________________
    محمد حمود.

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2009
    المشاركات
    349


    السلام عليكم ورحمة الله وبركاته :

    شكرا اخي مصالحة .. سأجرب ما تفضلت به .
    أخي محمد جربت الدالة preg_split كثيرا لكنها لم تعطيني النتيجة دقيقة كما أرغب .
    وملاحظة أخرى الدالة strip_tags() تقوم بحذف الوسوم وما بداخل الوسوم .. نحن نريد فقط أن نحذف الوسم وأن نبقي ما بداخلة .. وهو ما لا تفعله هذه الدالة ..





    __________________
    لا اله الا أنت سبحانك أني كنت من الظالمين-سبحان الله وبحمده سبحان الله العظيم.
    للمراسلة : h.3basy@gmail.com
    القدس

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512


    طيب ممكن تجرب هذا؟
    كود PHP:
    function words($s,$n,$u,$t){
        
        
    preg_match("#([^ ]*([^ ]+ *){1,".--$n."})#s",$s,$words);
        
        return 
    $words[1].'...<a href="'.$u.'" title="'.$t.'">بقية الموضوع </a>';

    |أخي ممكن توضح قصدك بـ ما في داخل الوسوم؟

    بخصوص strip_tags فهي تؤدي عملها طالما ان النص نظيف من العلامات الخاصة.
    يعني تم تحويل العلامات مثل < الى &lt; وهكذا. هذا ما يفترض في نص خارج من الموقع.





    التعديل الأخير تم بواسطة mr_m ; 10-03-2010 الساعة 10:16 AM
    __________________
    محمد حمود.

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2009
    المشاركات
    349


    السلام عليكم ..

    شكراً لك اخي محمد .. عملت الدالة السابقة على أكمل وجة .. استفدت من مشاركتك كثيراً .. سيصبح تفكيري دائما متجه نحو التعبيرات القياسية ..

    اما بخصوص الدالة strip_tags() فقد كنت مخطئ .. كنت اعتقد انها تمسح النص الموجود داخل الوسوم غير المسموح لها في البارميتر الثاني ..





    __________________
    لا اله الا أنت سبحانك أني كنت من الظالمين-سبحان الله وبحمده سبحان الله العظيم.
    للمراسلة : h.3basy@gmail.com
    القدس

  9. #9


    أخ شادي ..

    هل يمكن لك أن توضح فقط ايهما اسرع الجلب من ملف او من قواعد البيانات ..

    و انواع قواعد البيانات .. يعني ايهما اسرع في التعامل مع جلب النتائج .. mysql - access - SQLite

    و أكون لكم من الشاكرين .





    التعديل الأخير تم بواسطة assyrian-php ; 11-03-2010 الساعة 06:47 AM
    __________________
    مبرمج php للتواصل : roudyhermez(at)hotmail(dot)com
    مدونتي PlusCSS

  10. #10
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    دالتك تقطع اينما وصلت الحرف السادس ... وهذا ما لا نريده ... نحن نريد كلمات كاملة وليس وضع كهذا:
    "التقى الرئيس المص" ... بينما ما نريده "التقى الرئيس المصري" ...
    وايضاً يوجد مشكلة في اليو تي اف 8 - اذ ان الأحرف العربية تستعمل خانتان لحفظ كل حرف ... واستعمال دالتك قد يعطي شئ كهذا "التقى الرئيس الم╫" ...





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512


    massalha ، اي دالة تقصد؟





    التعديل الأخير تم بواسطة mr_m ; 11-03-2010 الساعة 10:18 PM
    __________________
    محمد حمود.

  12. #12
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    يبدو أن assyrian-php قد غير محتوى رده فقد كان سؤاله اننا لماذا لا نستعمل دالة substr ...
    وأنا اجبته على ذلك.

    تغيير المحتوى - بعد ان اجبته - هذه ليست خطوة جيدة.





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  13. #13


    أخ شادي انا آسف قمت بطرح سؤال قبل أن انتبه الى الردود التي كتبت لكنني عدلته خلال ثواني .. كيف لقطتني .

    بالنسبة للسؤال كان عن الدالة substr ثم لاحظت ان الشباب يتكلمون عن الكلمات و ليس عن الحروف فانتبهت الى غلطتي و قلت بما اني هنا .. بسألك عن سرعة الجلب .

    تقبل أسفي .
    دمت مبدعاً أخي شادي

    شكراً لك و لكل المشاركين بالموضوع .





    __________________
    مبرمج php للتواصل : roudyhermez(at)hotmail(dot)com
    مدونتي PlusCSS

  14. #14
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    طيب يا أخي وأنا كمان متأسف. هذه صورة توضح اي دوال لقواعد البيانات أفضل بالسرعة - انتبه ! ان بعض قواعد البيانات جيدة حين يكون لديك قاعدة بيانات صغيرة ونفسها تكون سيئة حين تكبر ... مثال الاكسس ...


    وهذا موقع ايضاً اجرى الفحص:
    http://www.sqlite.org/speed.html


    وهذا الموضوع في الويكي هو الأفضل ليعطيك كل الحقائق حول كل قواعد البيانات:
    http://en.wikipedia.org/wiki/Compari...gement_systems





    التعديل الأخير تم بواسطة massalha ; 12-03-2010 الساعة 11:25 AM
    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Jul 2008
    المشاركات
    269


    جزاك الله خير على الدالة المفيدة ..





    __________________
    اذا اردت فحص البيج رانك لعدة مواقع في لحظة واحدة يمكنك التواجه الى الرابط http://www.almzn.net/pagerank_alexa/
    مبــ PHP@MYSQLــــرمج ومـصـمم
    لطلب برمجة راسلنا على الإيميل fa.isl#hotmail.com مع استبدال # بـ@





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

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

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