يوم سوالف، في 7 أغسطس القادم

 

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

رد
 
LinkBack أدوات الموضوع
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#1 (permalink)  
[دالة] is_numeric للتأكد ان القيمة رقمية


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

باستخدام هذه الدالة تستطيع معرفة القيمة هل هي رقمية ام نصية

مثال :

كود PHP:
$text="021545454";
if( 
is_numeric$text ) )
  {
  echo 
"القيمة رقمية";
  }
  else
  { 
  echo 
" خطأ ";
  }
// النتيجة  "القيمة رقمية" 
اضافة ممكن تنفعك

ماذا لو ان لديك تعدد الصفحات ( اذا كنت ﻻ تعرف تعدد الصفحات سيأتي يوم تصل اليه ﻻ تخف) ويكون الرابط هكذا

artcile.php?id=214&page=3 ممتاز سيعمل جيدا ويكون المتغير هكذا
كود PHP:
$page=$_GET['page']; 
وماذا سيحصل لو ان الرابط هكذا artcile.php?id=214

ستحصل مشاكل وهي عدم اعطاء قيمة للمتغير page

وتأتي هذه التركيبة لتحل المشكلة

كود PHP:
$page=(!is_numeric($page) ? $page); 
لنشرح هذا السطر البرمجي البسيط ..

اذا كان المتغير فارغ او غير رقمي اعطيه القيمة "1" او اتركه يحمل القيمة اﻷصلية

فوائد :

التأكد من عدم وضع اوامر ممكن تخترق القاعدة
اضافة قيمة انت تحددها

يمكن تغيير الرقم "1" الى اي قيمة تصلح لبرنامجك.

والسﻻم عليكم






عبد الواحد البشيري غير متواجد حالياً   قديم 15-05-2008, 05:41 PM
رد مع اقتباس
مشرف قسم PHP
تاريخ التسجيل: May 2007-
#2 (permalink)  

شكراً أستاذي عبدالواحد ..

بالنسبة لاستخدامه في تعدد الصفحات ، فأنا أفضل الطريقة هذه :
كود PHP:
$page = (intval($_GET['page']) == intval($_GET['page'])); 
درس جميل ومفيد ،

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






__________________
[هل] سيتحقق الحلم؟
هذا ما ستخبرنا به الأيام :) ..
أشرف السمهوري غير متواجد حالياً   قديم 15-05-2008, 05:53 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#3 (permalink)  

اضافة رائعة اخي اشرف

يكفي اني تعلمت من الكثير استاذي نفعنا الله بعلمك






عبد الواحد البشيري غير متواجد حالياً   قديم 15-05-2008, 06:11 PM
رد مع اقتباس
مشرف قسم PHP
تاريخ التسجيل: May 2007-
#4 (permalink)  

كلنا نتعلم من بعضنا البعض عزيزي ..

بالمناسبة، في تعدد الصفحات عادة نحتاج إلى التحقق من أن الرقم هو عدد صحيح ، فمن غير المعقول في تطبيقاتنا " افتراضياً " ، أن يحتوي رقم الصفحة على خانات عشرية أو إشارة سالبة ..

بالنسبة للعدد الصحيح يمكن الاستعاضة عن is_numeric بـ is_int ، ولضمان أن الرقم ليس بالسالب ، نفحص المتغير أنه أكبر من 0 ..

كود PHP:
$page = (!is_int($page) ? : ($page $page)); 
لدي تعديل على كودي السابق ، لأننا لا نريد السوالب:
كود PHP:
$page = (intval($_GET['page']) <= intval($_GET['page'])); 
هكذا نضمن أن العملية ستسير على ما يرام إن شاء الله .. لا زلت أفضّل الكود الأخير ..

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






__________________
[هل] سيتحقق الحلم؟
هذا ما ستخبرنا به الأيام :) ..
أشرف السمهوري غير متواجد حالياً   قديم 16-05-2008, 11:38 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#5 (permalink)  

على قصة القيمة الرقمية تفضلوا هالدالة وهي تفيد باستخراج القيمة الرقمية من متغير نصي :

كود PHP:
<?php
function str2int($string$concat true) {
    
$length strlen($string);    
    for (
$i 0$int ''$concat_flag true$i $length$i++) {
        if (
is_numeric($string[$i]) && $concat_flag) {
            
$int .= $string[$i];
        } elseif(!
$concat && $concat_flag && strlen($int) > 0) {
            
$concat_flag false;
        }        
    }
    
    return (int) 
$int;
}
echo 
str2int("sh12apen11"); // النتيجة هي 1211
echo str2int("sh12apen11"false); // النتيجة هي 12

 
?>

فقط في سبيل الفائدة



سلامات اخواني .






EbNCaNa غير متواجد حالياً   قديم 16-05-2008, 08:13 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#6 (permalink)  

ما شاء الله عليك اخي اشرف ﻻ يوجد لدي ما اضيفه على كﻻمك ...

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

كود PHP:
$text="sh12apen11";
preg_match_all("/[0-9]+/",$text,$m);
$m=implode('',$m[0]);
echo 
$m






عبد الواحد البشيري غير متواجد حالياً   قديم 16-05-2008, 11:20 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#7 (permalink)  

جزاك الله خيرا أخ عبد الواحد، فعلا دالة لا غنى عنها للمبرمج..

تعقيب بسيط: بالنسبة لتعدد الصفحات أفضل استخدام
كود PHP:
$page = (int) $page;
if(
$page 2$page 1






mr_m غير متواجد حالياً   قديم 18-05-2008, 01:09 AM
رد مع اقتباس
مشرف قسم PHP
تاريخ التسجيل: May 2007-
#8 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة mr_m مشاهدة المشاركة
جزاك الله خيرا أخ عبد الواحد، فعلا دالة لا غنى عنها للمبرمج..

تعقيب بسيط: بالنسبة لتعدد الصفحات أفضل استخدام
كود PHP:
$page = (int) $page;
if(
$page 2$page 1
نفس الفكرة ..!!






__________________
[هل] سيتحقق الحلم؟
هذا ما ستخبرنا به الأيام :) ..
أشرف السمهوري غير متواجد حالياً   قديم 18-05-2008, 01:14 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#9 (permalink)  

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

كود PHP:
$page=(!is_numeric($page) ? $page); 
لنشرح هذا السطر البرمجي البسيط ..

اذا كان المتغير فارغ او غير رقمي اعطيه القيمة "1" او اتركه يحمل القيمة اﻷصلية
هناك طريقه افضل لقراءة الكود اخ عبد واحد
الداله is_numeric في حالة ان المتغير $page لايحمل قيمه رقميه او فارغ سوف ترجع
قيمه false و مع اضافتنا ! و التي تعني نفي سوف يصبح نفي نفي او بطريقه اخرى
false * flase = true على سبيل تقريب وبتالي عند ارجاع قيمه true سوف يسند له قيمه واحد

فقط لمزيد من توضيح
تحياتي لك






__________________
عربيزي:شبكه اجتماعيه عربيه
http://3rbeze.net
احمد شكر غير متواجد حالياً   قديم 18-05-2008, 01:58 AM
رد مع اقتباس
رد


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

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

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


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
دالة in_array للتأكد من وجود قيمة في المصفوفة أحمد أبو النصر PHP 0 29-12-2005 10:20 PM


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