النتائج 1 إلى 15 من 15

الموضوع: مساعدة في دالة الاستبدال eregi_replace

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    169

    مساعدة في دالة الاستبدال eregi_replace



    السلام عليكم

    أريد استخدام دالة eregi_replace لتقنين ادخال الصور بحيت لا يمكن للعضو التحكم بطولها و عرضها عن طريق html

    متلا
    كود HTML:
    <img border="3" src="image/img.gif" onload=a12.createOn(this)>
    أريدها أن تصبح
    كود HTML:
    <img src="image/img.gif" >








  2. #2
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    كود PHP:
    $tag '<img border="3" src="image/img.gif" onload=a12.createOn(this)>';
    preg_match('#src="(.*)"#'$tag$matches);
    $tag '<img src="'$matches[1] .'">'
    جرب هذا الكود أخي عزيز سوفت ..

    وسوف أقوم ببرمجة دالة لتنقيح الـ arrtibutes من وسوم الـ HTML علي طريقة دالة strip_tags ليمكن استخدامها بشكل أكثر عموماً بإذن الله.






  3. #3
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    169


    شكرا لتفاعلك مع الموضوع

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

    لو قام العضو بارسال مشاركة تحتوي على أكتر من صورة فان الكود سيكون فعال على أول صورة فقط:con2:


    و تحيتي لك








  4. الاخ "التصميم" ممكن تشرح لنا لماذا استخدمت ال"#"؟ لم ارها من قبل! هل ممكن تشرح لنا الفائده منها؟





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  5. #5
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    الأستاذ hilaby ، شاهدت هذا الرمز من قبل ولم أكن أعرف داعي استخدامه،

    بعد قليل من البحث:
    The syntax for patterns used in these functions closely resembles Perl. The expression should be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters. See Pattern Syntax for detailed explanation.
    من مقدمة الموضوع في php.net :
    PHP: Introduction - Manual

    For example, if you wanted to search for text surrounded by opening and closing tags like'<TD>SELL</TD>' and replace it with nothing (erase it), you might be tempted to use a regex like this:

    <?php
    $myNewText
    = preg_replace('/<TD>SELL</TD>/', "", $myText
    );
    ?>

    This does not work properly. As mentioned in the Introduction at the top of
    http://www.php.net/manual/en/ref.pcre.php, if the delimiter appears in the middle of your regular expression, then you must put a \ character before it. So this DOES work:

    <?php
    $myNewText
    = preg_replace('/<TD>SELL<\/TD>/', "", $myText
    );
    ?>

    That same Introduction also mentions that you can start and end your expression with characters other than the usual /. Because there are no % characters in the middle of my expression above, I might prefer to use the following:

    <?php
    $myNewText
    = preg_replace('%<TD>SELL</TD>%', "", $myText
    );
    ?>

    That also works correctly, and I did not need a \ before the /.


    من إحدى التعليقات في المانيوال كذلك ..

    زبدة الكلام، يمكن استخدام أي رمز حسب الشروط في الاقتباسين ..

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







  6. #6
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    السلام عليكم,

    أستاذ خالد ..
    كما تفضل أخي أشرف السمهوري بالتوضيح، فإن الـ # مجرد Delimiter قمت باستخدامه مؤخراً بدلاً من الـ / وذلك لأن الـشارب # لا تتواجد كثيرا داخل الباترن بينما السلاش تصادفنا أكثر فنضطر لتهريبها.
    هل تري معي أنها أفضل أم أن هناك مشكلة لا أراها؟

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

    كود PHP:
    function stripAttribs($text$allowedAttribs = array())
    {
        
    preg_match_all('#<(\w+?)[^>]*>#iU'$text$allTags);
        
        for(
    $i 0$i count($allTags[0]); $i++)  {
            if(
    array_key_exists($allTags[1][$i], $allowedAttribs))
            {
                
    $pattern str_replace(
                    array(
    ', '','),
                    
    '=["\']??[^"\'\s]+?["\']??|',
                    
    $allowedAttribs[$allTags[1][$i]]
                ) . 
    '=["\']??[^"\'\s]+?["\']??';
                
    preg_match_all("#$pattern#iU"$allTags[0][$i], $matches);
                
    $strippedTag '<' $allTags[1][$i] . ' ' implode(' '$matches[0]) . '>';
                
    $text str_replace($allTags[0][$i], $strippedTag$text);
            }
            else
            {
                
    $strippedTag '<' $allTags[1][$i] . '>';
                
    $text str_replace($allTags[0][$i], $strippedTag$text);
            }
        }
        return 
    $text;

    مثال علي استخدام الدالة
    كود PHP:
    $string '<font color="#00ff00"><a href="hello.php" id="welcome" onclick="jsFunc();">Hello</a></font>';

    $string stripAttribs($string, array('a' => 'href')); 
    حيث البارامتر الأول هو النص المراد تنقيحه
    والبارمتر الثاني هو الـ Attributes المسموح بتواجدها داخل وسوم الـ HTML. بمعني أننا سنترك هذه الوسوم ولن نحذفها.
    والبارمتر عبارة عن مصفوفة لكل عنصر فيها :
    - مفتاح: اسم وسم الـ html
    - قيمة : الـ Arrtibutes المسموحة له مفصول بينها ب comma مثل "href,id"

    وما دون ذلك من وسوم HTML غير مذكورة في المصفوفة يتم حذف أي بارمتر ممرر لها.

    ------------------------
    بالنسبة لمشكلتك أخي عزيز سوفت, علي افتراض أنك تريد تمرير وسوم الصور فقط متواجداً فيها src attribute فقط
    كود PHP:
    $text stripAttribs(strip_tags($text'<img>'), array('img' => 'src')); 
    أرجو أن أكون قد أفدتكم





    التعديل الأخير تم بواسطة التصميم ; 13-04-2008 الساعة 01:21 AM سبب آخر: تعديل في الدالة + توضيح للشرح

  7. #7
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    169


    و الله الدالة رائعة جدا و هي ما كنت أبحث عنه بالضبط :app:
    لكن تواجهني بها مشكلة غريبة جدا :

    ادا كان النص الموجه الى الدالة قادم من مصفوفة $_POST لا تعمل






  8. #8
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    169


    النتيجة تكون
    كود HTML:
    <img src=\">







  9. #9
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    و الله الدالة رائعة جدا و هي ما كنت أبحث عنه بالضبط
    أي خدمة

    لكن تواجهني بها مشكلة غريبة جدا :

    ادا كان النص الموجه الى الدالة قادم من مصفوفة $_POST لا تعمل
    أنا جربتها حالاً والنتيجة مظبوطة :con2:






  10. #10
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    169


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


    كود PHP:
    $string stripslashes($_POST['html']);
    $string stripAttribs($string, array('img' => 'src''a' => 'href'));
    echo 
    $string
    :app:






  11. #11
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    169


    تبقى أن نعرف كيف نسمح بأكثر من كود arrtibutes داخل الوسم
    متل
    كود HTML:
    <font size="4" color="#FF0000">text</font>







  12. #12
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    أعتقد المشكلة عندك في الـ Magic_quotes .. المفروض تكون off

    بالنسبة للسماح بأكثر من attribute أنا قولتها في شرح الدالة فوق. بس مش مشكلة نقول كمان

    كود PHP:
    $string stripAttribs($string, array('font' => 'size,color')); 







  13. #13
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    169


    كفيت و وفيت
    وجزاك الله عنا خير جزاء






  14. #14


    جزاك الله خير الجزاء هذه الدالة فادتني جدا في مشروع اقوم به الان

    بيض الله وجهك





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    جزانا الله واياكم

    قمت بتطوير الدالة وتجدون الدالة المطورة في هذا الموضوع
    http://www.swalif.net/softs/swalif45/softs225318/










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

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

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