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

الموضوع: api اختصر روابطك بسهوله مع tinyurl

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

    api اختصر روابطك بسهوله مع tinyurl



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


    tinyurl موقع لاختصار الروابط الطويلة الي روابط صغيرة سهلة الحفظ وتخزينها بسهوله

    الكود عبارة عن فنكشن لاستخلاص الرابط من نص معين ويعود لك بالرابط المصغر
    كود PHP:
    /**
     * api shorten links
     * @author : Mohammed Endisha [Bruce]
     * @link : http://developer.ws.ly
     * @api : tinyurl api
     *
     * @function : process()
     * @function : tiny()
     * @return : shorten link
     */ 
    function process($link){
        
    $url = @file_get_contents("http://tinyurl.com/api-create.php?url={$link[0]}");
        return 
    $url;
    }
    function 
    tiny($_text){
        return 
    preg_replace_callback("/(((http|ftp):\/\/[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}\/*([\w\/\.\?&=]+)*)+)/is"'process' $_text);

    لطب الدالة
    كود PHP:
    print tiny('welcome to in my world http://developer.ws.ly'); 
    تم الاعتماد علي دالة file_get_contents في التطبيق مع اني اعلم ان الكثير منكم لايحبذها يمكنكم استخدام مكتبة CURL مكانها فهي تؤدي نفس العمل المطلوب وربما افضل.

    سلام
    المصدر
    http://developer.ws.ly/article-62.html





    __________________
    Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309
    __________________
    Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    طيب ماتعملنا حاجه للموقع دا

    Http://tli.tl






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


    شكراً لك Bruce ..

    يمكن استخدام الكود التالي للتعامل مع موقع lt.tl كذلك:

    كود PHP:
    function process($link){
        
    $url = @file_get_contents("http://lt.tl/api.php?create={$link[0]}");
        return 
    $url;
    }

    function 
    tiny($_text){
        return 
    preg_replace_callback("/(((http|ftp):\/\/[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}\/*([\w\/\.\?&=]+)*)+)/is"'process' $_text);

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





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  5. #5
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    شوف هاي الطريقة:

    -قمت بارسال الفورم عن طريق curl لأنك عامله بطريقة post
    -استعملت طريقة بدائية جدًا لاستخراج الرابط وذلك لعدم وجود شيء سهل يدل على مكانه:
    مثلا لو وضعته في ديف كان عملتله
    getElementById
    هذه الطريقة تعد بدائية لأنه مع اي تغيير لكود الصفحة التي تظهر الرابط سوف يفشل الكود-لأنها تعتمد على strpos
    كود PHP:
    <?php
     
    //set POST variables
    $url 'http://tli.tl/add_links_processing.php';
    $fields = array(
                            
    'onelink'=>urlencode($_GET['url']),
                            
    'guest'=>urlencode('iam a guest')
                        
                    );

    //url-ify the data for the POST
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
    rtrim($fields_string,'&');

    //open connection
    $ch curl_init();
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL,$url);

    curl_setopt($ch,CURLOPT_POST,count($fields));
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

    //execute post
    $result curl_exec($ch);

    //close connection
    curl_close($ch);
    $pos strpos($result,"short link is :");
    echo 
    substr($result,$pos+45,20);
    ?>

    على العموم لو صنعته انت بنفسك كان رح يكون الكود اسهل بكثير لأنك صاحب الموقع وتقدر تغير شغلات، كأن تجعل ادخال الروابط بواسطة get مثلا ً وبالتالي توفر على نفسك استعمال الcurl

    للتجربة:
    http://www.codeiseasy.info/site/test.php?url=link
    بحيث ان المتغير يشير إلى العنوان المراد تقصيره
    ولا تنسى http


    لاستعمال الطريقة اعمل للصفحة file_get_contents وضعها في متغير وسيحوي الرابط الذي تم تحويله.

    ملاحظة: جرب اعمل آلية لمنع الفلود، لأنه على ما نجحت الطريقة كنت مدخل على موقعك 30 رابط تقريبًا





    التعديل الأخير تم بواسطة ahmad sadiq ; 01-02-2010 الساعة 09:55 PM

  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    ملاحظة: جرب اعمل آلية لمنع الفلود، لأنه على ما نجحت الطريقة كنت مدخل على موقعك 30 رابط تقريبًا
    قمت بمحاولة لمنع الفلود .. هل يمكنك أن تتعطينى النتائج ؟؟

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






  7. #7
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    عزيزي خشباوي كل ما قمت بفعله هو فحص الريفيرال...
    ويمكن تفادي هذا الامر في كورل بواسطة هذا الامر:
    كود PHP:
    curl_setopt($ch,CURLOPT_REFERER,"http://tli.tl/"); 
    المثال الذي على موقعي يعمل الآن...
    http://www.codeiseasy.info/site/test.php?url=link

    وكذلك الكوكيز يمكن التلاعب بها كما نشاء
    أنا لم اتحدث عن منع الوصول الى الموقع من الخارج وانما قصدت تقنين ذلك الامر، خاصة ان الموضوع الرئيسي يتحدث عن ال api
    وفي هذه الحالة ما لك غير الكابتشا عندما تتجاوز مرات الادخال 10 مرات متتالية مثلا ً
    أو اعمل كما تعمل المواقع الكبرى(application code)، اعمل كود(رقم تسلسلي) لكل صاحب موقع يريد استعمال الapi وعد عليه عدد مرات التحويل بحيث لا يتجاوز الألف يوميًا مثلا ً.

    ملاحظة أخرى لا تكتب للمخترق رسالة واضحة توضح له خطأه "cant access from remote site"
    خلي عندك شوية غموض ولا تكتب الكثير من المعلومات





    التعديل الأخير تم بواسطة ahmad sadiq ; 01-02-2010 الساعة 11:44 PM

  8. #8
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    تم تركيب كابتشا إلى أن يتسنى لى عمل شئ آخر بهذا الخصوص


    أ
    و اعمل كما تعمل المواقع الكبرى(application code)، اعمل كود(رقم تسلسلي) لكل صاحب موقع يريد استعمال الapi وعد عليه عدد مرات التحويل بحيث لا يتجاوز الألف يوميًا مثلا ً.
    شكراً على الفكرة


    بإنتظار فحصك للموقع و المزيد من الثغرات و لك جزيل الشكر






  9. #9
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    خشباوي،

    لماذا لا تتجنب كل هذا وتعمل سكريبت واضح لارجاع رابط التقصير...
    يرجع فقط معطى واحد - وهو الرابط ..

    لكن كما ذكرتم - اجعل عدد المرات الاقصى لتقصير رابط معين هو 5 في الدقيقة مثلاً ...
    اذا احتاج احدهم أكثر - يمكنه التسجيل عندك كعضو Premium ويأخذ كمية روابط أكثر ...

    انتبه - لا تكثر من ال Http Requests دخيلك !!!





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net





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

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

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