2012-02-16 5 views
0

私はフィールドに希望のドメイン名を尋ねるフィールドを持っていますが、今ではフィールドにwww.desireddomainが含まれていることがあります。この値を持つと、私が持っているドメインレジストラAPIはエラーを返します。私が念頭に置いているアプローチは、preg_replace()を使って、ピリオド(ピリオドを含む)の前に任意の文字を省略することです。私は(、.COM、.BIZ .ORG、.NET)が含まれ<select>を持ってきれいなホスト名

$desired_domain = "www.desireddomain"; // user input 
$will_be = "desireddomain"; // final output after preg_replace() ? 

そしてまた、これだけの期間に私を制限以上の私が知っておくべきものがあるのでしょうか?ありがとう。

+0

最後に可能な.comやスラッシュを除外していますか? – Max

+2

無効なフォームで入力できることがかなりあります。ユーザー入力を確実に検証する必要があります。 –

+0

[ドメイン名をPHPで検証する方法](http://stackoverflow.com/questions/1755144)/how-to-validate-domain-name-in-php) –

答えて

1

「ファジー」検索を行っていないため、正規表現を使用する必要はありません。期間がある場合は、最後の期間からすべてを取得してください。

if (strrpos('www.domain','.')!==false) { 
    $domain = substr('www.domain',strrpos('www.domain','.')+1); 
} 

また、あなたが確認する場合、彼らは.ORG、.NET、爆発を使用してチェックを行う.COM、.BIZは、入力されていません。この例では

$parts = explode('.', 'www.desireddomain.com.net'); 
$domain = array_pop($parts); 
$invalid_parts = array('com','biz','org','net'); 
if (in_array($domain, $invalid_parts) && count($parts)>0) { 
    $domain = array_pop($parts); 
} else { 
    // No valid domain submitted 
} 

、彼らはそれが有効なのですなくても、ドメインとして「COM」を使用することを求めています。ループを作成して、有効な部分を見つけたり項目がなくなるまで、配列からアイテムを連続的にポップすることができます。

+0

wwwに固執しました –

+0

ありがとうございます。しかし、入力が "www.ddmomain.com.net"の場合はどうなりますか? –

+0

あなたの質問によれば、.com/.net/.orgはドロップダウンしているので、ドメインは "net"になります。 www.ddmomain.comはサブドメインになります。 –

0

のように、正規表現/^.*\./を使用します。

$desired_domain = "www.desireddomain"; 
$will_be = preg_replace("/^.*\./","",$desired_domain); 
print $will_be; //Outputs "desireddomain" 

あなたはユーザーAに伝えるオフに優れているユーザが入力することができると、無効なデータの種類がたくさんがあること、しかし、覚えておいてください有効な入力のための正規表現と照合することにより、

+0

'$ desired_domain =" www.desireddomain.com.net ""なら、どうすればドメイン名だけを選ぶことができますか? –

+0

@boy:あなたは本当に多くのものをフィルタリングする必要があります。つまり、最初や最後にwwwやHTMLをフィルタリングする必要があります。そして、誰かが完全なURLに貼り付けた場合は、 – Max

+0

のために ' /(^。*?\。|(\ .. *?){2})/ '正規表現では、それ以降は退屈になり始めます。ユーザは望むように、多くの '.com'と' .net'をその末尾に置くことができます。目的のドメインのみを入力し、 '/ \ w + /'に対してそれを検証するように指示することができます。 – wecsam

関連する問題