الأخوة الخبراء : أريد أن أعرف ما هي جملة substr وكيف يمكن الحساب بها .... مثلا هذه الجملة ما هو ناتجها :
$result= substr(12,0,1)
أرجو المساعدة للضرورة القصوى !
الأخوة الخبراء : أريد أن أعرف ما هي جملة substr وكيف يمكن الحساب بها .... مثلا هذه الجملة ما هو ناتجها :
$result= substr(12,0,1)
أرجو المساعدة للضرورة القصوى !
أخي العزيز حسب معرفتي المتواضعة في البيرل يمكنني أن أقول لك أن الدالة substr تشابه الدالة Mid في الـ Visual Basic وهي ليست دالة حسابية بل تقوم بإستقطاع جزء من النص ووضعه في المتغير المقابل لها إنظر إلى المثال التالي :
السطر الأول واضح ، بالنسبة للسطر الثاني فنقوم فيه بإستخدام الدالة substr وتمرير المتغير الموجود فيه النص و أما عن ألرقم 11 فهو مكان بداية الإستقطاعكود:$txt = "Welcome To JTA4Arab"; $result= substr($txt ,11,8); print $result;و الرقم 8 هو عدد الحروف المستقطعة
.
مثلاً لو كنا نريد إستقطاعكلمة To من المثال السابق سوف يكون المثال على النحو التالي :
أكيد شرحي مو مفهوم كالعادةكود:$txt = "Welcome To JTA4Arab"; $result= substr($txt ,8,2); print $result;
تمنياتي لك بأوقات سعيدة مع البيرل
وكل عام و أنت بخير ..
__________________
مدونتي الشخصية :
http://www.mazen.ws
عن البرمجة و تطوير المواقع و علوم الحاسب
ماسنجر :
desclub@hotmail.com
بريد الكتروني :
mazen@mazen.ws
نسيت أقلك أنه من الممكن تغير كلمة JTA4ARAB مثلاً بكلمة أخرى عن طريق قلب العملية إنظر المثال التالي :
وقس على ذلككود:$txt = "Welcome To JTA4Arab"; substr($txt ,11,8) = "Swalif"; print $txt;![]()
__________________
مدونتي الشخصية :
http://www.mazen.ws
عن البرمجة و تطوير المواقع و علوم الحاسب
ماسنجر :
desclub@hotmail.com
بريد الكتروني :
mazen@mazen.ws
جملة substr هي جملة تعطيك جزء من نص أو تبدله لك .
وهي تشبه جملة left , right , mid في الفيجول بيسك ولكنها أكثر مرونه .
ولها الصيغة التاليه :
كود:substr EXPR,OFFSET,LEN,REPLACEMENT
حيث expr هو النص المراد العمل عليه .
offset مكان الحرف أو الجزء المراد معرفته أو استبداله .
len طول الجزء .
replacement النص المراد احلاله .
وهذا المثال وجدته في بعض الصفحات يبين هذه الجمله :
يقوم المثال بفصل مجموعه من الأرقام مثل 12345678 كما يلي 12,345,678 :
كود:1 sub conversion 2 { 3 $number = shift; 4 $size = length($number); 5 $result = ($size / 3); 6 @commas = split (/\./, $result); 7 $remain = ($size - ($commas[0] * 3)); 8 $pos = 0; 9 $next = 0; 10 $loop = ($size - $remain); 11 while ($next < $loop) 12 { 13 if ($remain > 0) 14 { 15 $section[$pos] = substr($number, 0, $remain); 16 $next = $remain++; 17 $remain = 0; 18 $pos++; 19 } 20 $section[$pos] = substr($number, $next, 3); 21 $next = ($next + 3); 22 $pos++; 23 } 24 $loop = 0; 25 @con = (); 26 foreach (@section) 27 { 28 $loop++; 29 $cell++; 30 @tens = split (/:/, $_); 31 $con[$cell] = $tens[0]; 32 if ($loop == $pos) 33 { 34 last; 35 } 36 $cell++; 37 $con[$cell] = ","; 38 } 39 return @con; 40 }
__________________
أخوكم ...
الأخ Nasa Baby آٍسف لم يكن ردك موجودا عندما بدأت الكتابه ..
__________________
أخوكم ...
الأخوان Nasa Baby و ابو يعقوب
شكرا جزيلا لكم ... ما قصرتم الحقيقة انا فهمت طريقة عملها لكن عندي إستفسارات بسيطة :
في المثال $result= substr(12,0,1)
ما هي القيمة التي ستحصل عليها $result ?
أعتقد انه سيكون 1 اليس كذلك ؟؟؟
طيب اذا كانت الجملة كذا $result= substr(12,3,9)
ما هي القيمة التي سأحصل عليها ؟؟؟؟
شكرا جزيلا لمساعدتكم
بكل تأكيد بالنسبة للجملة الأولى سوف يكون الناتج هو الرقم " 1 " اما الجملة الثانية فأعتقد أنها لن ترجع بأي قيمة . لست متأكد ؟!!!
الأخ أبو يعقوب .. خذ راحتك...
__________________
مدونتي الشخصية :
http://www.mazen.ws
عن البرمجة و تطوير المواقع و علوم الحاسب
ماسنجر :
desclub@hotmail.com
بريد الكتروني :
mazen@mazen.ws