我沒看這個答案:如何通過Laravel檢查URL是否存在?
How can I check if a URL exists via PHP?
不過,我在想,如果一種方法在Laravel存在,可以檢查是否存在URL(不是404)或不?
我沒看這個答案:如何通過Laravel檢查URL是否存在?
How can I check if a URL exists via PHP?
不過,我在想,如果一種方法在Laravel存在,可以檢查是否存在URL(不是404)或不?
我假設你想檢查是否有一個匹配某個URL的路由。
$routes = Route::getRoutes();
$request = Request::create('the/url/you/want/to/check');
try {
$routes->match($request);
// route exists
}
catch (\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $e){
// route doesn't exist
}
有沒有辦法通過Laravel檢查外部URL? – rotaercz
@ rotaercz至少不是一個更好的那個,你在你的問題中鏈接的那個...... – lukasgeiter
啊,好的。謝謝。 – rotaercz
試試這個功能
function checkRoute($route) {
$routes = \Route::getRoutes()->getRoutes();
foreach($routes as $r){
if($r->getUri() == $route){
return true;
}
}
return false;
}
這對路由參數不起作用 - 使用'$ routes-> match()'會解決這個問題。 – pseux
不是特別laravel功能,但你可以在這個
function urlExists($url = NULL)
{
if ($url == NULL) return false;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode >= 200 && $httpcode < 300) {
return true;
} else {
return false;
}
一試你想查詢的外部URL或內部路由laravel? – DouglasDC3
@ DouglasDC3:我不知道有什麼區別。我想檢查一個外部網址。 – rotaercz
最好的方法是在你添加的其他文章中描述。 – DouglasDC3