web-dev-qa-db-ja.com

文字列が有効なURLかどうかを確認する方法

WordPressはis_email()と呼ばれる便利な機能を提供します。 URLが有効かどうかを確認するために使用できる同様の機能はありますか?

私はis_url()を試しましたが、それは私の側で考えているだけの願いでした。

Ref: http://codex.wordpress.org/Function_Reference/is_email

7
henrywright

ネイティブのphp関数を使う Filter Validator

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}
9
shanebp

これは古い投稿ですが、訪れる人にはWP functions esc_url()esc_url_raw() を検討する価値があります。エンティティをエンコードします。 esc_url()はエンティティをエンコードするので、ユーザーへの表示に適しています。

情報源esc_url()は許可されたプロトコルと構造のホワイトリストをチェックするので、@ tobltobsによって提示されたリンクによって指摘されたFILTER_VALIDATE_URLの脆弱性のいくつかを回避することがわかります。

6
orionrush

私のプロジェクトで作業中にwp_http_validate_urlが有効なURLの文字列かどうかをチェックするのはとても便利です。

ここから参照してください: https://developer.wordpress.org/reference/functions/wp_http_validate_url/

例えば:

$val = 'http://somevalidurl.com';
if ( wp_http_validate_url( $val ) ) {

    // It's valid URL;

} else {

    // It's NOT valid URL;

}

有効な場合はURL自体を返し、それ以外の場合はfalseを返します。

2
Ashish Shrestha

ユーザーが送信したURLが およびsafe に保存され、後で表示されることを保証するために、私はお勧めします

esc_url_raw($url) === $url

上記の@orionrushのように、esc_url_raw()は無効または悪意のあるものを削除してURLをサニタイズします。したがって、文字列に無効なものや悪意のあるものが含まれていなければ、問題ありません。

例えば

if( esc_url_raw($url) === $url ) {
   // URL is valid. Use it...
} else {
   // URL is invalid or malicious. Don't use it...
}

私はここでそれについてのより長いブログ記事を書きました: https://cmljnelson.wordpress.com/2018/08/31/url-validation-in-wordpress/

0
thespacecamel