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

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو سوبر نشيط
تاريخ التسجيل: Nov 2003-
#1 (permalink)  
دالة بسيطة للتخلص من عناوين الموضوع الطويلة (( short_string ))


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

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

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

هذه الدالة :-

كود PHP:
function short_string($a,$h)
{
if(
strlen($a)>$h )
{
echo 
"".substr($a,0,$h)." ...";

return 
$a;
  }
// by Sari 
بسيطة أليست كذلك ؟ ..

طريقة الإستخدام :
الدالة تحتاج إلى بارامترين الأول هو النص ( العنوان ) والثاني هو عدد الحروف التي تريد إظهارها
وإذا زاد النص عن هذا العدد يقوم بإستبدال النص المتبقي بالنقاط ...

مثال
كود PHP:
// النص 
$s="Welcome in Ala7lam.net !";
// الدالة 
echo short_string($s,10); 
استخدم المثال السابق وستلاحظ أنه يطبع التالي
Welcome in ...

ملاحظة :
الدالة تقوم بتغيير النص عند العرض فقط ! .. أي أن النص يبقى كما هو ..


تستطيع وضع حقل بقاعدة البيانات خاص بعدد الحروف التي تريد إظهارها
وعند إظهار عنوان الموضوع في القسم يظهر جزء من العنوان ، والعنوان كاملاً عند الدخول لهذا العنوان
كما هو موجود في مجلة المبرمج العربي rafia 1.4

بالتوفيق للجميع ،،،






__________________
الإستضافات :

http://www.ala7lam.net/host.html

موضوع الإستضافات وخدماتنا :

إستضافات وخدمات شبكة الأحلام التطويرية ...
ســــاري غير متواجد حالياً   قديم 19-03-2005, 06:37 PM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Feb 2004-
#2 (permalink)  

شكرا لك اخوي

وسبق انا ان وضعت تقريبا نفس الموضوع وموجود بسوالف ، واضافة الاخ هاشم دالة جديدة ..

عموما الف شكر لك .. وكمان موجوده هناا..

http://www.phpfaq.php-ar.com/index.p...d6268723b7c16d

ملاحظه مهمه جدا : خـل نشــوف اضافتــك في PHP FAQ عـزيـزي

تحياتي






__________________
بي اتش بي العرب : php-ar.com
دروس PHP خاص : phpfaq.php-ar.com

new site : www.naifphp.net/web
Mr.php-ar غير متواجد حالياً   قديم 19-03-2005, 07:41 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Nov 2003-
#3 (permalink)  

يا هلا ومرحبا بك جريح

وحياك الله .. شاكر لك ردك يا الغالي

وبالنسبة للموقع توني اشوفه ، واحد قالي تعرف موقع أسئلة البي اتش بي .. حسبته أجنبي قلت لا ..

بإذن الله سأتواجد هناك .. لانه لدي موضوع لطريقة عمل المتواجدون الآن

تقبل تحياتي ،،،






__________________
الإستضافات :

http://www.ala7lam.net/host.html

موضوع الإستضافات وخدماتنا :

إستضافات وخدمات شبكة الأحلام التطويرية ...
ســــاري غير متواجد حالياً   قديم 19-03-2005, 08:48 PM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Dec 2004-
#4 (permalink)  

شكرا لك وبارك الله فيك ..
ملاحظة: الدالة التي ستكون أفضل بكثير هي أن تقوم بعرض عدد معين من الحروف كما ذكرت مع مراعاة المسافات .. فليس مقبولا أن تكون الكلمات التي تظهر مثلا:
إذا رأيت نيوب اللي...
والنص الأصلي:
إذا رأيت نيوب الليث بارزة ..
وهذا سيكون تمرينا جيدا

وفي انتظار "المتواجدون الآن"






__________________
....
محمد حسام
انترنت بلس
إنترنت بلس غير متواجد حالياً   قديم 19-03-2005, 09:16 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Mar 2003-
#5 (permalink)  

قمت بعمل هذه الدالة ولله الحمد لقطع النصوص الطويلة مع مراعاة المسافات, كما قال الاخ انترنت بلس
كود PHP:
function SmartCut($string$length)
{
    
$check      = ($string{$length} == ' ') ? 1;
    
$cut_symbol "...";

    switch (
$check)
    {
        case 
0:
            
$after_cut substr($string0$length).$cut_symbol;
            break;
            
        case 
1:
            if ( 
strlen($string) < $length )
                
$after_cut $string;
            else
            {
                for (
$i=$length+1$i<=strlen($string); $i++)
                {
                    if ( 
$string{$i} == ' ' )
                    {
                        
$after_cut substr($string0$i).$cut_symbol;
                        
$done TRUE;
                        break;
                    }
                }
                if ( !
$done )
                    
$after_cut substr($string0$length).$cut_symbol;
            }

            break;
    }

    return 
$after_cut;

للتجربة
كود PHP:
echo SmartCut("إذا رأيت نيوب الليث بارزة"17); 
واذا في اي ملاحظات, ياريت تذكروها عشان نطور الدالة ونستفيد جميعاً ان شاء الله






العملاق غير متواجد حالياً   قديم 20-03-2005, 12:57 AM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Dec 2004-
#6 (permalink)  

ماشاء الله يا عملاق دالة ممتازة ..
لاحظت فقط أنها تطبع عدد أحرف أكثر من المحدد ..

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

تعديل:
ملاحظة أخرى .. لأن الدالة تعمل على الحروف حرف حرف وكذلك دالة substr للاستبدال فهي بطيئة نسبيا (طبعا بالمايكرو ثانية) ..






__________________
....
محمد حسام
انترنت بلس
إنترنت بلس غير متواجد حالياً   قديم 20-03-2005, 02:10 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Mar 2003-
#7 (permalink)  

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

وفكرة المسابقة جداً رائعة اتمنى ان تفكر فيها بجدية, راح تكون منافسة شريفة وقوية وابدعات من الاعضاء مالها آخر, وفي النهاية ممكن نجمعها نحطها في مكتبة للدوال لمن أراد ان يستفيد من الجهود العربية 100%






__________________
قال عليه الصلاة والسلام:"ليس منا من دعا إلى عصبية وليس منا من قاتل على عصبية وليس منا من مات على عصبية"

# مشاريع:
- الفوائد .. خلاصة العلم والمعرفة

العمل بصمت - nawaf.hareeri.net
العملاق غير متواجد حالياً   قديم 20-03-2005, 11:05 AM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Dec 2004-
#8 (permalink)  

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

أوكي .. سأطرح أول مسابقة وتكون للموضوع الحالي ..






__________________
....
محمد حسام
انترنت بلس
إنترنت بلس غير متواجد حالياً   قديم 20-03-2005, 11:16 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Mar 2003-
#9 (permalink)  

الله يهديك يا انترنت بلس, انا المفروض اللي اقلك الكلام هذا

عموماً, انا متحمس للموضوع, وراح اطور الدالة السابقة, واضعها في موضوع المسابقة الذي طرحته
انتظرني






__________________
قال عليه الصلاة والسلام:"ليس منا من دعا إلى عصبية وليس منا من قاتل على عصبية وليس منا من مات على عصبية"

# مشاريع:
- الفوائد .. خلاصة العلم والمعرفة

العمل بصمت - nawaf.hareeri.net
العملاق غير متواجد حالياً   قديم 20-03-2005, 03:55 PM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Dec 2004-
#10 (permalink)  

طيب منتظرك
نريد أن نبدعععععععععععععع .. ماشي؟






__________________
....
محمد حسام
انترنت بلس
إنترنت بلس غير متواجد حالياً   قديم 21-03-2005, 12:46 AM
رد مع اقتباس
رد


 

أدوات الموضوع

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

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 07:18 AM بتوقيت المملكة العربية السعودية