Esempio n. 1
0
 public function store(Request $request)
 {
     $validator = Validator::make($request->all(), ['long_url' => 'required|url|max:255']);
     if ($validator->fails()) {
         $status = ['status' => 'failed', 'error' => $validator->errors()];
     } else {
         $header = @get_headers($request->input('long_url'));
         if (!preg_match('/200/', $header[0])) {
             $status = ['status' => 'failed', 'error' => 'URL Not Found / invalid'];
         } else {
             $host = 'http://' . env('HOSTNAME') . '/';
             $current = Urls::where('long_url', $request->input('long_url'))->first();
             if ($current) {
                 $shortUrl = $host . $current->short_url;
             } else {
                 $unique = strtolower(str_random(3));
                 $shortUrl = $host . $unique;
                 $data = Urls::firstOrCreate(['long_url' => $request->input('long_url'), 'short_url' => $unique]);
                 $data->save();
             }
             $status = ['status' => 'success', 'long_url' => $request->input('long_url'), 'short_url' => "{$shortUrl}"];
         }
     }
     return response()->json($status)->setCallback($request->input('callback'));
 }
Esempio n. 2
0
 public function goUrl($shortCode)
 {
     $recode = Urls::where('short', $shortCode)->first();
     if ($recode) {
         return \Redirect::to($recode->url);
     } else {
         return \Redirect::to('/');
     }
 }
 public function go($shortCode)
 {
     $data = Urls::where('short_url', $shortCode)->first();
     if ($data) {
         return view('go', ['url' => $data->long_url]);
     } else {
         return view('notfound');
     }
 }
Esempio n. 4
0
File: Urls.php Progetto: lnmput/url
 public static function get_unique_short_url()
 {
     $short = base_convert(rand(10000, 99999), 10, 36);
     $recored = Urls::where('short', $short)->first();
     if (!empty($recored)) {
         static::get_unique_short_url();
     }
     return $short;
 }