リモートURLに画像が存在するかどうかを確認しようとしています。http/httpsの有無にかかわらずリモートURLに画像が存在するかどうか確認してください
Validator::extend('valid_img_url', function ($attribute, $value, $parameters, $validator) {
$handle = curl_init($value);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode >= 200 && $httpCode <= 400) {
return getimagesize($value) !== false;
}
});
特定のリモートURLは、たとえばhttps://website.com
のためであればそれは正常に動作します:私はこれまで持って何
。しかし、指定されたリモートURLがhttp
またはhttps
なしでwebsite.com
である場合、私はこのエラーgetimagesize(website.com): failed to open stream: No such file or directory
を受け取ります。
この問題を解決するにはどうすればよいですか?どんな助けもありがとう!
あなたのメソッドの中では、URLが存在しないときにURLに 'http://'または 'https://'を追加することができます。正確なプロトコルを指定したくない場合には、 '//'を使うことができると思いますので、 '// webside.com'で始めることが有効です。 –