مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

نحوه ایجاد لینک کوتاه

  • چهارشنبه 20 دی 1396
  • 11:28
تشکر میکنم

سلام بر حضرات دوستان

می خواستم برای صفحات پروژه ی خودم، لینک کوتاه چیزی شبیه به همین لینک کوتاه صفحات تاپ لرن ایجاد کنم.

میشه یه راهنمایی کوچیک در حد ارجاع به مقاله یا آموزشی ارائه بدهید.

با تشکر و احترام

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 20 دی 1396
  • 12:38

لینک زیر را بررسی کنید:

algorithm - How to code a URL shortener? - Stack Overflow

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • چهارشنبه 20 دی 1396
  • 13:08

سلام خدا بر سهیل عزیز

نه متاسفانه این لینک پر از ایراد بود و اصلا جواب دلخواه را نمی داد.

خیلی از سورس های موجود در وب را بررسی کردم اما اکثرا یا با API  گوگل گفتند یا اصلا کدهاشون چرت و پرت جواب میده

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 20 دی 1396
  • 13:51
    public static class UrlShortener 
    {
        private static readonly string _alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        private static readonly int    _base     = 62;

        public static string Encode(int num)
        {
            var sb = new StringBuilder();

            while ( num > 0 )
            {
                sb.Append( _alphabet[( num % _base )] );
                num /= _base;
            }

            var builder = new StringBuilder();
            
            for (var i = sb.Length - 1; i >= 0; i--)
            {
                builder.Append(sb[i]);
            }
            
            return builder.ToString(); 
        }

        public static int Decode(string str)
        {
            var num = 0;

            for ( int i = 0, len = str.Length; i < len; i++ )
            {
                num = num * _base + _alphabet.IndexOf( str[(i)] ); 
            }

            return num;
        }   
    }

کد بالا شامل دو متد می باشد به نام EnCode و DeCode  متد اول یک عدد دریافت می کند و آن را به یک حرف کوچک تبدیل می کند مثلا عدد 300 می شود e0 ، متد دوم عکس متد اول عمل می کند و آن را به حالت قبل باز می گرداند. 

شما باید کلید اصلی جدول خود را EnCode کنید و بر اساس آن جستجو کنید تا لینکتان کوتاه شود.

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • چهارشنبه 20 دی 1396
  • 14:23

بسیار ممنون از وقتی که برای اینجانب گذاشتید.

الان تونستم یه جوابی بگیرم فقط یه سوال برام پیش اومد که احتمالا ناشی از فهم بد بنده می باشد.

یعنی من باید کلید اصلی تیبل خود را encode  کرده و ان را به بیننده نشان بدهم؟!؟!؟!؟!

خب برای routing  از جداول مختلف از کجا باید بفهمم که این لینک برای کدام جدول است؟!؟!؟

باز هم شرمنده که وقتتان را می گیرم

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 20 دی 1396
  • 16:30

یک Controller ایجاد کنید با یک نام کوتاه مثلا p (بهتر است نام آن در Route تعریف شود نه خود کلاس Controller) سپس یک اکشن ایجاد کنید که یک پارامتر میگیرد به string دریافت می کند پارامتر دریافتی همان کلید Encode شده است آن را  DeCode می کنیم و کلید اصلی را به دست آوریم سپس یه کوئری به بانک زده و اطلاعات را واکشی می کنیم.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)