私は、すべてのURLに一致するRegexを作成するのに助けが必要です。私は長い間必要なものを探していましたので、私の問題を解決する答えを見たことがあります。PHPの正規表現はすべてのURLに一致します
website.com
www.website.com
はまた、何が
をwww.website.com/path-to-something
末尾に、私は任意のURLを短縮何かをコーディングしていますが、そうするために、最初に私はそれらすべてに一致する必要があります。
おかげ
私は、すべてのURLに一致するRegexを作成するのに助けが必要です。私は長い間必要なものを探していましたので、私の問題を解決する答えを見たことがあります。PHPの正規表現はすべてのURLに一致します
website.com
www.website.com
はまた、何が
をwww.website.com/path-to-something
末尾に、私は任意のURLを短縮何かをコーディングしていますが、そうするために、最初に私はそれらすべてに一致する必要があります。
おかげ
この1試合あなたが投稿すべて正しく:
preg_match_all('#[[email protected]:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[[email protected]:%_\+.~\#?&//=]*)?#si', $targetString, $result);
お願いします...? – Aquillo
私はそれにエラーが発生します:警告:preg_match():不明な修飾子 '{'私は何かにそれをラップする必要がありますか? –
これはJSで動作します、私はそれを変換しようとします。 –
をあなたは、次のトリックを使用することができます
$url = "your URL"
$validation = "/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i";
if((bool)preg_match($validation, $url) === false)
echo 'Not a valid URL';
を、私はそれがあなたのために働くかもしれないと思います。
$string = 'www.blah.com';
$temp_string = (!preg_match('#^(ht|f)tps?://#', $string)) // check if protocol not present
? 'http://' . $string // temporarily add one
: $string; // use current
if (filter_var($temp_string, FILTER_VALIDATE_URL))
{
echo 'is valid';
} else {
echo 'not valid';
}
これは、URLの検証でPHPのビルドを使用しています。
あなたはこのようなものを使用します。最初にプロトコルが存在するかどうかを確認し、そうでない場合は、チェックする文字列に一時的に文字列を追加し、次に検証を実行します。これは、現在受け入れられている回答とは異なり、正確です。
これはgooogle.comやwww.google.comなどと一致しますか? –
はいhttp://viper-7.com/Jz7nR1とはいhttp://viper-7.com/Iv9SiS –
上記のコードは、どちらかで始まらないという意味で無効なURLが見つかった場合http:// https:// ftp://またはftps://または一時的にhttp://を追加して完全なURLにして、PHPのURL検証機能に安全に渡すことができます。それ以外の場合は、既にそれが含まれている場合はそのまま検証機能に渡します。 –
正規表現を使用しないでください。あなたが望むことをするためのPHP関数があります。
質問は、等価なリンクが有効かどうかではなく、同等の場所に行くかどうかをチェックできるようにURLを細分する方法を尋ねていますか否か。彼はホストが同じかどうか、パスが同じかどうかを確認したいと考えています。 – Danack
実際には、無効なURLを短くします。google.comを使用するようなURLのようなものに一致します。技術的には無効ですが、それを修正してから短くしてください。Parse urlは必要なものではありません。答えを投稿していただきありがとうございます。とにかく –
@Danack parse_url():_この関数は、指定されたURLを検証するためのものではなく、上記の部分に分割するだけです。 – Fredmat
これまでの取り組みは? – Rikesh
Regexはまったく別の表現を試しましたが、Regexはまさに私の特技ではありません(http:// [^] +)。 –
@Spudley: 'website.com'は有効なURLではなく、ユースケースは異なるので、そう思わないでください。 OPは一致するベースURLを検索します。 – Aquillo