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')); }
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'); } }
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; }