3

さまざまな形式の URL 入力があります。すべてを 1 つの標準形式に変換したい。以下にいくつかの入力例を示します。

上記のすべての入力から、 wwwを使用して最初の入力 ( http://www.example.com )に変換したいと思います。したがって、「www」がない場合は文字列を置き換えることができると思います。

$pattern = '/((http?|https)\:\/\/)?([a-zA-Z]+)\.example.com\/[a-z]{2}\/[a-zA-Z0-9]{5,30}/i';

このパターンにしてみました。私はそれがすべてを置き換えて一致することを知っています。その方法を教えてください。

4

2 に答える 2

1
function to_standard_format($url) {
    $pattern = '#(https?://)?\w+\.example.com(?=[/\s]|$)#i';
    return preg_replace($pattern, 'http://www.example.com', $url);
}

var_dump(to_standard_format('http://www.example.com'));
var_dump(to_standard_format('https://in.example.com'));
var_dump(to_standard_format('http://uk.example.com'));
var_dump(to_standard_format('http://uk.example.com/blah'));
var_dump(to_standard_format('uk.example.com'));
var_dump(to_standard_format('http://www.example.com.au'));
var_dump(to_standard_format('uk.another-example.com'));

版画

string(22) "http://www.example.com"
string(22) "http://www.example.com"
string(22) "http://www.example.com"
string(27) "http://www.example.com/blah"
string(22) "http://www.example.com"
string(25) "http://www.example.com.au"
string(22) "uk.another-example.com"
于 2013-10-30T08:34:00.907 に答える