المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دالة اقتصاص النص بطريقة احترافية وسريعة جدا


ذات النطاقين
11-14-2010, 11:09 PM
السلام عليكم ورحمة الله وبركاته
في هذه المقالة سنتعرف على كيفية اقتصاص جزء من النص ولكن بطريقة سريعة واحترافية وباعتقادي انها الافضل من حيث استخدام قوة اللغة بالتعامل مع النص على انه مصفوفة احرف ساضع الكود وسيتم شرحه بالتفصيل رمز PHP:
function cutstr($str, $length){

$len=strlen($str);
if ($length>=$len) {
return $str; }
$ret='';
$str.=' ';
for ($i=0;$i<$len;$i++){
if ($i>=$length and $str{$i}==' ') {
return $ret.@func_get_arg(2);
} else{
$ret.=$str{$i};
}
}
}
echo cutstr('DWAL.BIZ',5,'..');


في البداية اعلنا عن الدالة وهيا cutstr ثم في السطر التالي
رمز PHP:
$len=strlen($str);


اضفنا الى السلسلة النصية فراغ بحيث اذا لم يوجد فراغ ارجعت السلة كاملة
رمز PHP:
$str.=' ';


حصلنا على عدد الاحرف ووضعناها في متغير ثم قمنا بالسطر التالي بفحص القيمة اذا كان عدد الاحرف المطلوب اكبر او تساوي عدد الاحرف للنص نقوم بارجاع كافة النص رمز PHP:
if ($length>=$len) { return $str; }


ثم قمنا بتعيين متغير للنص الجديد رمز PHP:
$ret='';


ثم قمنا بالسطر التالي بالقيام بتكرار بحسب عدد الاحرف
رمز PHP:
for ($i=0;$i<$len;$i++){


ثم في السطر التالي رمز PHP:
if ($i>=$length and $str{$i}==' ') { return $ret.@func_get_arg(2); }


وضعنا شرط اذا كان رقم التكرار اكبر او يساوي العدد المطلوب وكان الحرف التالي هو حرف الفراغ نقوم
بانهاء الدالة واعادة القيمة اما مع اضافة قيمة البارمتر الثالث اذا وجد بنهاية النص عبر الدالة رمز PHP:
@func_get_arg(2);


والتي تعيد البارمتر المحدد
وهيا تبداء من صفر حسب مبدا المصفوفات ثم اذا لم يتم الوصول الى العدد المطلوب نقوم باسناد الحرف الجديد الى المتغير
$ret
وبذلك نص الى نهاية الدالة والله ولي التوفيق ملاحظة ان لغة البي اتش بي تعمد بالتعامل مع النص على انه مصفوفة احرف وللوصول الى اي حرف معين نقوم بوضع اسم المتغير ثم قوسي حصر ثم رقم الحرف وبذلك نصل الى الحرف المطلوب مثال
رمز PHP:
$e='abc'; echo $e{1};


او يمكنك استخدام الدالة التالية
رمز PHP:
function cutstr($str, $length){

$len=strlen($str);
if ($length>=$len) {
return $str; }
$str.=' ';
for ($i=0;$i<$len;$i++){
if ($i>=$length and $str{$i}==' ') {
return substr($str,0,$i).@func_get_arg(2);
}
}
}

سمكة
02-21-2014, 05:46 AM
أحييكِ على هذه الجهود النيرة بالانتقاء الرائع

بصراحة موضوع معبر جدا" تأثرت به أنا شخصيا"

تقبلي مروري المتواضع

وأنتظر جديدكِ بفارغ الصبر

ابن فلسطين
08-19-2014, 02:34 PM
سلمت الآيآدي يآرب
يعآفيك ربي لآهنتِ ع الآنتقآء المتميز
لكِ ودي وشكري

نور الشمس
08-21-2014, 10:40 AM
سلمت الآيآدي يآرب
يعآفيك ربي لآهنتِ ع الآنتقآء المتميز
لكِ ودي وشكري

حبيبه الرحمن
08-22-2014, 11:22 PM
سلمت أناملك يالغلآ..
بانتظار جديدك القاآآدم

مسعود
03-06-2015, 06:06 AM
معلومات روعه

سلمت يداك

ننتظر المزيد

كندية
05-06-2015, 02:00 PM
سلمتيداك للمعلومات الهامه
بانتظار جديدك

شهد
01-17-2016, 07:33 AM
ماشاء الله على الروعه فى انتقاء المواضيع
دائما متميز
فى انتظار كل ما هو جديد من مواضيعك الهامه